web-dev-qa-db-ja.com

16.04所有権nobody:nogroup

16.04にアップグレードした後、共有フォルダの所有権と許可に常に問題があるようです。

フォルダー名testを作成し、その権限を777に変更し、そのフォルダーをローカルネットワークで共有しました。

別のマシン(Windows)から、そのtestフォルダーのファイルを表示および編集できますが、そのフォルダー内のファイルを編集するたびに、所有権と権限がnobody:nogroupに変更されるため、編集できません再び私の16.04マシンで。

test$ ll
total 328
drwxrwxrwx 2 pac   pac      4096 Jan 20 09:59 ./
drwxrwxrwx 4 pac   pac      4096 Jan 20 09:32 ../
**-rwxr--r-- 1 nobody nogroup** 326442 Jan 20 09:59 t1.log*

なぜ自動的に-rwxr--r-- 1 nobody nogroupに変わるのですか?許可が常にrwxrwxrwxになり、所有権が常にpac:pacになるように(そのnobody:nogroup迷惑を削除する)この変更を防ぐにはどうすればよいですか?

フォルダーtestでこれを繰り返し行う必要はありません。

$ Sudo chown pac:pac . -R
$ chmod 777 . -R
5
artm

Samba共有で許可の問題が発生した場合、Sambaにはユーザーおよびファイルとディレクトリの許可に関する独自の構造があることを理解しておくと便利です。 Samba共有を作成し、特定のユーザーのみにそのSamba共有へのアクセスを許可することでアクセスを制限する場合、通常はSambaユーザーを作成します。コマンドラインでは、これはコマンド「smbpasswd」を使用して実行できます。詳細については、を参照してください。

man smbpasswd

ユーザーおよびファイル/ディレクトリのアクセス許可をSamba構成に追加するには、/ etc/samba /にあるsmb.confファイルを編集します。

こちらもご覧ください。

https://help.ubuntu.com/community/Samba/SambaServerGuide#Samba_Server_Configuration_in_terminal

許可の設定については、こちらをご覧ください。

https://help.ubuntu.com/community/Samba/SambaServerGuide#File_Sharing_.28Advanced.29

Smb.confを編集した後、Sambaサーバーデーモンを再起動するか、構成ファイルの読み込みを行う(リロードする)必要があります。

一部の古いUbuntuバージョンでは、smbdとnmbdの両方を再起動できましたが、新しいUbuntuバージョンでは、「init」スクリプトsambaを再起動できます。

Sudo service samba restart

一部のオフィス環境では、Sambaの再起動ではなく、設定の再読み込みのみを実行して、ユーザーの中断を回避することが理にかなっています。

/etc/init.d/nmbd force-reload && /etc/init.d/smbd force-reload

これは、いくつかの古いUbuntuリリースにあります。私は新しいUbuntuのリリースを想定しています:

Sudo service samba force-reload 

(これをまだテストしていない)。

2
albert j

これは、16.04ではなく、sambaで作業する場合のファイルおよびディレクトリのアクセス権に関連する問題です。ログインを使用せずにパブリック共有を設定し、sambaゲストユーザーをユーザーnobodyにマッピングすると仮定します。

すべてのsambaユーザーはnobodyとしてログインするため、保存されたファイルはすべてユーザーnobodyおよびグループnogroup

Sambaゲストユーザーによって作成されたファイルt1.logにはパーミッション-rwxr--r--があり、そのファイルの所有者はnobodyです。ユーザーpacは、Othersの読み取り権限のみを持つため、変更できません。

これを解決する1つの方法は、sambaゲストユーザーをユーザーpacに再マッピングすることです。

これが/etc/samba/smb.confで設定されていることを確認してください:

guest account = pac

...次に、共有フォルダー内のすべてのファイルの所有権をユーザーに変更しますpac

Sudo chown -R pac:pac /path/to/share

_

明らかに、これはpac以外のユーザーがrwアクセスも必要とするマルチユーザー環境では機能しません。

-rwxrwxrwxで作成されるファイルとディレクトリのsmb.confでcreate mask = 0777directory mask = 0777を使用することを提案する人もいますが、私の経験では、時間の経過とともにいくつかのファイルがまだ他の許可で終わっていることがわかりました。

私が見つけた唯一の信頼できる解決策は、bindfsで共有ディレクトリを再マウントして、常に0777権限を強制することです。

まず、bindfsをインストールします。

Sudo apt install bindfs

次に、systemdサービスファイルを作成します。

Sudo nano /lib/systemd/system/mount-bindfs.service

これをファイルに貼り付けます:

# mount-bindfs systemd service file

[Unit]
Description=Remount directories with different permission
After=mountall.service

[Service]
Type=forking
ExecStart=/bin/sh -c "/usr/bin/bindfs -o perms=0777 /path/to/share /path/to/share"

[Install]
WantedBy=multi-user.target

Systemdをリロードし、起動時にサービスを有効にして起動します。

Sudo systemctl daemon-reload
Sudo systemctl enable mount-bindfs.service
Sudo systemctl start mount-bindfs.service

共有フォルダでllを実行すると、すべてがrwxrwxrwxとして表示されます。

2
loongyh