Linuxの新しいフォルダとファイルのデフォルト権限の設定

Linuxの新しいフォルダとファイルのデフォルト権限の設定

私はOpenSuSEを使用していますが、私のコンピュータにはルートとジャーという2つのアカウントしかありません。ディレクトリがあります/srv/www/htdocs/abc

このディレクトリに新しいフォルダまたはファイルが作成されると、その権限が777に設定されるように設定したいと思います。

このディレクトリに新しいファイルを作成するときに書き込み権限を取得するには、ファイルを777に戻す必要があります。

私はrootを使い、次のように入力します。

chmod me /srv/www/htdocs

しかし、私は働いていません。どうすればいいですか?

ベストアンサー1

権限を変更するために使用しますchmod。このコマンドは、chownファイルとディレクトリの所有権を変更するために使用されます。

所有権

ディレクトリの所有権を変更するには、次のコマンドを使用できます。

$ sudo chown -R me /srv/www/htdocs

メモ:このsudoツールを使用して、rootにならずにこれらのコマンドの権限をrootと同じレベルに上げます。

特権

このディレクトリの権限を変更するには:

$ sudo chmod -R 777 /srv/www/htdocs

マスク

umaskファイルとディレクトリの作成時にその権限がある程度影響を受けるように端末を設定するには、このコマンドを使用します。umask場合によっては、あなたが思うことを正確に与えないかもしれないので、使用するときに注意してください。

ディレクトリには大丈夫そうです。

$ for i in `seq 1 7`;do echo "umask: 00$i"; umask 00$i; rm -fr blah; mkdir blah;ls -l|grep blah;done
umask: 001
drwxrwxrw-   2 saml saml     4096 Jul 29 14:39 blah
umask: 002
drwxrwxr-x   2 saml saml     4096 Jul 29 14:39 blah
umask: 003
drwxrwxr--   2 saml saml     4096 Jul 29 14:39 blah
umask: 004
drwxrwx-wx   2 saml saml     4096 Jul 29 14:39 blah
umask: 005
drwxrwx-w-   2 saml saml     4096 Jul 29 14:39 blah
umask: 006
drwxrwx--x   2 saml saml     4096 Jul 29 14:39 blah
umask: 007
drwxrwx---   2 saml saml     4096 Jul 29 14:39 blah

しかし、特定のumaskと同じファイルを持つことはできません。以下の例を参照してくださいumask 006

$ for i in `seq 1 7`;do echo "umask: 00$i"; umask 00$i; rm -fr blah; touch blah;ls -l|grep blah;done
umask: 001
-rw-rw-rw-   1 saml saml        0 Jul 29 14:40 blah
umask: 002
-rw-rw-r--   1 saml saml        0 Jul 29 14:40 blah
umask: 003
-rw-rw-r--   1 saml saml        0 Jul 29 14:40 blah
umask: 004
-rw-rw--w-   1 saml saml        0 Jul 29 14:40 blah
umask: 005
-rw-rw--w-   1 saml saml        0 Jul 29 14:40 blah
umask: 006
-rw-rw----   1 saml saml        0 Jul 29 14:40 blah
umask: 007
-rw-rw----   1 saml saml        0 Jul 29 14:40 blah

他にもあります。これは単なる例を強調するためのものです!

ではどうすればいいですか?

あなたがApacheディレクトリ(pathベース)を扱っていると仮定すると、私はあなたとApacheが実行されているユーザーの両方がメンバーになっている/srv/www/htdocsUnixグループを探します。me次のgroupsコマンドを使用して確認できます。

$ groups saml
saml : saml vboxusers jupiter newgrp

$ groups apache
apache : apache

id次のコマンドを使用することもできます。

$ id saml
uid=500(saml) gid=501(saml) groups=501(saml),502(vboxusers),503(jupiter),10000(newgrp)

$ id apache
uid=48(apache) gid=48(apache) groups=48(apache)

私のシステムでは、Apacheはユーザーが実行しますapache。ユーザーを見ると、apacheグループに属していることがわかります。したがって、1つの方法は、ユーザーをmeグループに追加することです。

たとえば、次のグループmeに追加します。apache

$ sudo usermod -a -G apache me

別の方法は、別のグループを作成し、その補助グループ(apacheplusなど)におよびを追加してapacheから、me次のコマンドを実行することです/srv/www/htdocs

$ sudo chgrp -R apacheplus /srv/www/htdocs

おすすめ記事