他のユーザーが自分のフォルダーからファイルをコピーできるようにしますか?

他のユーザーが自分のフォルダーからファイルをコピーできるようにしますか?

私はUbuntuを使っていて、このフォルダにjarファイルがあります/export/home/david

machineBそして、私はユーザーとしてログインしていますdavid

同じマシンに他のユーザーもログインしています。他のユーザーに、私の場所から上記の jar ファイルをコピーしてもらいたいです。

しかし、どういうわけか、権限が拒否されるため、それができません。誰でもそのフォルダーからファイルをコピーできるように、その jar ファイルまたはフォルダーに権限を追加する方法はありますか?

アップデート:-

以下が私が得た結果です -

david@machineB:~$ groups david
david : uucp

otheruser@machineB:~$ groups otheruser
otheruser : app

david@machineB:~$ ls -l foo.jar
-rw-r--r-- 1 david uucp 6543346 2014-03-07 18:27 foo.jar

david@machineB:~$ ls -ld $(echo "/home/david/foo.jar" | sed -r ':a; s#(.*)/[^/]*$#\1#;p;ta')
drwxr-xr-x 22 root   root 4096 2014-05-04 08:04 /home
drwx------  4 david uucp 4096 2014-03-07 18:36 /home/david

答え1

まあ、どういうわけか、あなたの$HOMEディレクトリにはあなただけがアクセスできます。これは私が知っているどのシステムでもデフォルトではありませんが、あなたまたはシステム管理者がこのように設定した可能性があります。

とにかく、必要なのは、全員に読み取り/実行アクセス権を与えることだけです$HOME。これは、ほとんどのマルチユーザー システムで、ユーザーが作業を共有できるようにするための標準です。次のコマンドを実行するだけです。

chmod a+rx ~/

これにより、ホームの権限が に設定されrwxr-xr-x、誰でもホームからファイルをコピーできるようになります$HOME

答え2

誰かに自分のファイルへの読み取りアクセスを許可するには、その人にファイルの読み取り権限と、そのファイルにつながるすべてのディレクトリの実行権限が必要です。たとえば、Alice に の/home/david/for_alice/foo.jar読み取り権限foo.jarと の実行権限があることを確認する必要があります/home/david/home/david/for_aliceディレクトリの実行権限は、そのディレクトリ内のファイルに名前でアクセスするために必要です。ディレクトリの読み取り権限は、ディレクトリ内のファイル名を一覧表示するために必要です。ディレクトリの読み取り権限は厳密には必要ありませんが、Alice が GUI を使用してファイルを参照する場合は特に便利です。

現時点では、ホーム ディレクトリには権限がありrwx------、その中のファイルにアクセスできるのはあなただけです。

ファイルがローカルにあり、ACL ツールが利用可能な場合は、Alice にアクセス権を付与できます。次のコマンドは、Alice にfor_aliceその下のすべてのファイルへの読み取りアクセス権を付与しますが、ホーム ディレクトリ内のファイルを一覧表示することは許可しません (名前を推測すれば、Alice はホーム ディレクトリ内のファイルにアクセスできます)。

setfacl -m user:alice:x ~
setfacl -Rd -m user:alice:rX ~/for_alice
setfacl -R -m user:alice:rX ~/for_alice

ACL が不可能な場合は、グループ全体またはシステム全体のアクセスを許可する必要があります。

chmod +x ~
chmod -R a+rX ~/public

答え3

chmod o+r /path/to/file友達がコピーできるようにしたいファイルに対して、全世界の読み取り権限を許可します。

chmod -R o+r /path/to/directory; find /path/to/directory -type d -exec chmod o+x {} \+他のユーザーが 内のすべてのファイルを読み取れるようにします/path/to/directory。Patrick が指摘したように、chmod o+rxすべての親ディレクトリにも world read and execute ( ) を追加する必要があります。これをスクリプト化する最も簡単な方法はすぐには思いつきませんが、可能だとは思います。

関連情報