私はOpenSuSEを使用していますが、コンピューターにはrootとmeの2つのアカウントしかありません。ディレクトリがあり/srv/www/htdocs/abc
ます。
このディレクトリに新しいフォルダまたはファイルが作成されたときに、アクセス許可が777に設定されるように設定したいだけです。
このディレクトリに新しいファイルが作成されたら、書き込みアクセスを取得するために、それらを再度777に設定する必要があります。
私はルートとタイプを使用します:
chmod me /srv/www/htdocs
しかし、私は働きません。どうやってやるの?
の使用は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
他にもありますが、これは例を強調するためだけのものです!
(パスに基づいて/srv/www/htdocs
)Apacheディレクトリを扱っているとするme
と、ユーザーとApacheを実行しているユーザーの両方がメンバーであるUnixグループを探します。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
もう1つの方法は、別のグループを作成し、両方apache
とme
このセカンダリグループ(たとえば、apacheplus)に追加してから、次のコマンドを実行すること/srv/www/htdocs
です。
$ sudo chgrp -R apacheplus /srv/www/htdocs
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加