Ubuntu ユーザーの追加、設定、パーミッション

ユーザ関連

ユーザ一覧
getent passwd
less /etc/passwd

ユーザ情報
id xxx

グループ一覧
getent group
less /etc/group

グループに所属ユーザの確認
getent group xxx

グループの作成
groupadd wp

グループにユーザを追加
usermod -aG wp www-data

ログインユーザの所属グループ
groups
groups ユーザ名
でもOK

sudoできるユーザ
/etc/sudoer
Ubuntuの場合sudo、adminグループ

ubuntuではsudoグループがsudoできるグループ
adminというグループには誰も所属していない

ユーザ作成
>>sudo useradd inna

>>getent passwd | grep inna
inna:x:1001:1002::/home/inna:

>>sudo passwd inna
xxx

mオプションを付けないと、ホームディレクトは作成されない
sudo mkdir inna
sudo chown inna:inna /home/inna/
だけど、この場合、/etc/skelの内容がコピーされない

useradd -D
デフォルトの確認

ユーザの削除
userdel -r inna

mオプションでホームディレクトリの作成
(自動で、/etc/skelのコピーが入る)
sudo useradd -m inna

ログインできなユーザへ
sudo usermod -s /usr/sbin/nologin inna

ログインできるユーザへ
sudo usermod -s /bin/bash inna

参加するグループの変更
usermod -aG

パーミッション

chown -R xxx/xxx
で再帰的にユーザ、グループを全て変えられる。

d/rwx/r-x/r-x

o+xはカレントディレクトリにできる。
o-xすると、カレントにできず、内部のファイル、ディレクトにアクセスできない。
上の階層のパーミションの影響はxだけで大丈夫。xはアクセス権。

o+rはlsができる。
o-rにするとカレントではlsができないがサブのファイル、ディレクトリは指定できる。
(サブディレクトリへの影響はxのため)

o=wはファイル、ディレクトリを作れる。

inna/ — inna:inna d/rwx/r-x/r–
|–  a/ —inna:inna d/rwx/rwx/rxw
だと/inna/aでいけない。

inna/ — inna:inna d/rwx/r-x/–x
|– a/ — inna:inna d/rwx/rwx/rxw
だと/inna/aでいける。

もう一例

inna —inna:okamura rwx/—/–x
 |–test — okamura:okamura rwx/rwx/rwx
上記パーミッションで以下のアクセスできるか
c /home/inna/test – NG

inna —inna:inna rwx/—/–x
  |-test — okamura:okamura rwx/rwx/rwx
上記パーミッションで以下のアクセスできるか
c /home/inna/test – OK

chmod

sudo chmod [ u / g / o / a ] [ + / – / = ] [ r / w / x ] 対象ファイル

u: ユーザー
g: グループ
o: その他
a: すべて

sudo chmod 764 hoge.txtのように指定することもできる

4: 読むことが可能(Read)
2: 書くことが可能(Write)
1: 実行が可能(eXecute)
0: なにもできない

権限の意味

ファイル
r: そのファイルを読み込む
w: そのファイルを書込める
x: バイナリなら実行できる。スクリプトなら、そのスクリプトを実行できる。
(スクリプトの実体はテキストファイルで先頭に#記号がある)

ディレクトリ
r: そのディレクトリの中身をみる。
w: そのディレクトリにファイルを作成すること。
x: そのディレクトリをカレントディレクトリにすること。

ディレクトリの実行権はサブディレクトリにも影響するが、RWは指定のフォルダだけ。

chown,chmodの実用例(wordpress)

sudo chown -R root:root wp-admin
該当フォルダ以下のフォルダもファイルも全て変わる。
この処理はwp-adminも該当する。

sudo chmod -R u-rwx wp-admin
該当フォルダ以下のフォルダもファイルも全て変わる。
この処理はwp-adminも該当する。

sudo find wp-admin -type d -print | xargs sudo chmod 755
サブフォルダのディレクトリだけ
この処理はwp-adminも該当する。

sudo find wp-admin -type f -print | xargs sudo chmod 640
サブフォルダのファイルだけ
この処理はwp-adminも該当する。

/usr/share/wordpressに以下を実行。
sudo chown -R root:wp *
sudo find . -type d -print | xargs sudo chmod 755
sudo find . -type f -print | xargs sudo chmod 640
このコマンドはカレントディレクトリも摘要されるので注意。

WordPressのアップデート時にFTPを求められる場合

以下のコマンドをwp-contentの中で実行してみた。
sudo find . -type d -print | xargs sudo chmod g+w
sudo find . -type f -print | xargs sudo chmod g+w
ダメ。

仕方ない。
sudo chown -R www-data:wp wp-content
としてみるがダメ。

wp-admin/includes/file.php
の所有者をwww-dataに変更したら進んだ。