
私は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/htdocs
Unixグループを探します。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