Ubuntu ユーザー関連、パーミッション

ユーザ

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

区切られた内容は以下の通り。
・ユーザ名
・パスワード
・ユーザーID
・グループID
・コメント
・ホームディレクトリ
・利用シェル

ユーザ情報
id xxx

グループ

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

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

グループの作成
groupadd wp

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

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

***

実験として、/var/www/に直接ファイルをアップロードするための変更。

ちなみに、/var/www/はroot:rootだが、rootグループにはrootしか所属していないため、/var/wwwの所属グループを変更しても問題ない。

所属グループの書き込みを許可
sudo chmod g+w /var/www

所属グループの変更
sudo chown root:www-upload /var/www

グループの作成
sudo groupadd www-upload

グループにユーザを追加
sudo usermod -aG www-upload ubuntu

確認
groups ubuntu

WinSCPでアップロードするとubuntu:ubuntuの権限になる(デフォルトユーザーがubuntuなため)ので、/var/www/以下にフォルダ・ファイルをアップロードしてもサブフォルダも含めアクセスできるが、SSHでフォルダ・ファイルを作成すると権限がrootになるので、WinSCP経由では作業できないので注意。

***

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

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

ユーザ作成
sudo useradd xxx

mオプションを付けないと、ホームディレクトは作成されず、手動では/etc/skelの内容がコピーされない

useradd -D
デフォルトの確認

ユーザの削除
userdel -r xxx

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

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

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

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

chown

chown 所有者:所属グループ 対象

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

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は指定のフォルダだけ)