Linux コマンド:グループ・ユーザー・権限

ファイル、ディレクトリのグループ、権限

ls -l
バッチコマンド(Linux/DOS/PowerShell)」参照

ID

※アカウント、所属グループを表示
$ id

uid=1000(ユーザー名) gid=1000(メイングループ名),1001(サブグループ名1),1002(サブグループ名2),・・・

グループ

メイングループ
ユーザが唯一所属するグループ
サブグループ
ユーザがメイングループの他に所属するグループ。複数〇

コマンド 内容
groups グループを表示
groupadd グループ追加
groupdel グループ削除
groupmod グループ変更

groups

所属グループを表示

グループ名1 グループ名2 ・・・

groupadd

グループ追加
# groupadd (グループ名)

groupdel

グループ削除
# groupdel (グループ名)

groupmod

グループ情報変更
# groupmod (グループ名)

グループ情報(一覧)

/etc/group(テキストファイル)
・グループ名
・グループID(GID)
・メンバーリスト

ユーザー情報(一覧)

/etc/passwd(テキストファイル)
・ユーザ名(ログイン名)
・(暗号化パスワード)
Xと記載される
・ユーザ番号(UID)
・グループ番号(GID)
・コメントフィールド(名前など)
・ホームディレクトリーのパス
・ログイン・シェル

ユーザー

コマンド 内容
users ログインユーザーを表示
useradd ユーザー追加
userdel ユーザー削除
passwd パスワード変更
usermod 所属グループ変更

users

ログインユーザーを表示
# users

useradd

ユーザー追加
# useradd (ユーザー名)

userdel

ユーザー削除
# userdel (ユーザー名)

passwd

パスワード変更
# passwd (ユーザー名)

usermod

所属グループ変更
# usermod [オプション] (ユーザー名)
メイングループ変更
# usermod -g (グループ名) (ユーザー名)
サブグループ変更(置き換え)
# usermod -G (サブグループ名1),(サブグループ名2),(サブグループ名3) (ユーザー名)
サブグループ追加
# usermod -aG (サブグループ名) (ユーザー名)

gpasswd

所属グループ変更

機能 オプション
ユーザ追加 -a $ gpasswd -a (ユーザ名) (グループ名)
ユーザ削除 -d $ gpasswd -d (ユーザ名) (グループ名)
所属ユーザ指定 -M $ gpasswd -M (ユーザ名1),(ユーザ名2),(ユーザ名3),・・・ (グループ名)

VirtualBoxにおける共有フォルダ管理グループへのユーザ追加
# sudo gpasswd -a (ユーザ名) vboxsf

su

ユーザー切り替え
(指定したユーザーでシェルを再起動)
$ su – ユーザー名
※ubuntu専用
初期設定でrootアカウントにはパスワードが設定されていないのでrootにユーザー変更できない
$ su – ($ su – root と同じ)
は×
一時的にrootユーザーに変更
$ sudo su –
$ sudo su – root

sudo

指定したユーザーでコマンドを実行する

$ sudo -u ユーザー名 pwd
ユーザー未指定の場合はrootで実行
$ sudo pwd
管理者のみアクセス可能なディレクトリでの操作
sudo sh -c “cd ~; ls;”
sudo sh -c “cd ~; cat ~;”
-c プロセスを新規に生成する
sudo設定ファイルの編集
visudo

権限

chown

所有者変更
# chown (所有者) (ファイル名)
# chown test test.txt
ディレクトリ内の全ファイルの所有者を変更
# chown -R (所有者) (ディレクトリ名)
# chown -R test test.txt
グループ、所有者を同時に設定
# chown -R (所有者:グループ) (ファイル/ディレクトリ名)
# chown test:test test.txt

chmod

数字による指定

権限変更
# chmod (読取権限)(書込権限)(実行権限) (ファイル名)
# chmod (読取権限)(書込権限)(実行権限) (ディレクトリ名)
# chmod 777 test.txt

 Owner  Group  Other
読/書/実 読/書/実 読/書/実
r/w/x r/w/x r/w/x

読み取り権限/書き込み権限/実行権限の有無を、
4/2/1
の数字の合計で表す。
全て有り=7
読取+実行=5
等。

表示 2進数 設定値
rwxrwxrwx 111111111 chmod 777 ~
r-xr-xr-x 101101101 chmod 666 ~
r-xr-xr-x 100100100 chmod 555 ~
r–r–r– 100100100 chmod 444 ~
-wx-wx-wx 011011011 chmod 333 ~
-r–r–r- 010010010 chmod 222 ~
–x–x–x 001001001 chmod 111 ~
——— 000000000 chmod 000 ~

定数による指定

chmod (対象) (効果) (結果)
chmod [ugoa][+-=][rwx]
【対象】

定数 機能
u 所有者の権限
g グループの権限
o その他のユーザーの権限
a すべての権限

chmod u+r 所有者にr権限を追加
chmod ug+r 所有者、グループにr権限を追加
chmod ugo+r 所有者、グループ、他にr権限を追加
chmod a+r 全対象にr権限を追加
【効果】

定数 機能
+ 後に記述した権限を付加する
後に記述した権限を削除する
= 後に記述した権限にする

chmod u+r 所有者にr権限を追加
chmod u-r 所有者からr権限を削除
chmod u=r 所有者の権限をrのみに設定(-r-)
【結果】

定数 機能
r 読み込み権限
w 書き込み権限
x 実行権限

chmod u+r 所有者にr権限を追加
chmod u+w 所有者にw権限を追加
chmod u+x 所有者にx権限を追加

chgrp

ファイルの所属グループ変更
# chgrp (グループ名) (ファイル名)

セキュリティ

rootでのssh禁止

ssh」参照
設定ファイル
/etc/ssh/sshd_config
#PermitRootLogin yes

PermitRootLogin no

sshポート変更

ssh」参照
設定ファイル
/etc/ssh/sshd_config
#Port 22

Port XXXXX

chroot

ルートディレクトリの変更
現プロセス(子プロセス)
ルートディレクトリ対象
/test
└bin
└lib64
binとlib64は必要
cd /

bin home lib var etc ・・・
chroot test
cd /

bin lib64
ホームディレクトリが/testに変更される
cd ..
上階層に移動
ls
bin lib64
/testより上階層には移動できない

操作

ssh

接続

$ ssh オプション ホスト コマンド

ホストの指定はIPアドレスかドメイン名
$ ssh aaa.bbb.ccc.ddd
$ ssh office-yone.com

オプション
オプション 機能 備考
l ユーザ名 $ ssh -l yone office-yone.com
$ ssh yone@officeyone.s324.xrea.com
i 秘密鍵パス $ ssh -i ~/.ssh/aaa.pem yone@officeyone.s324.xrea.com
p ポート番号
i デバッグ $ ssh -v yone@officeyone.s324.xrea.com

sftp

SSH File Transfer Protocol
ssh接続後にssh接続ネットワークを用いてファイル転送を行う

SSL/TLS接続ネットワークを用いてFTPを行うコマンドもある
FTPS (FTP over SSL/TLS)

接続

$ sftp オプション ホスト コマンド

sftp yone@officeyone.s324.xrea.com

以後対話コマンドが開始される

オプション
オプション 機能 備考
oPort ポート番号指定 $ sftp -oPort="22022" yone@officeyone.s324.xrea.com
b バッチファイル $ sftp -b ~/.ssh/aaa.bat yone@officeyone.s324.xrea.com
対話コマンド
コマンド 機能 備考
exit/quit/bye 切断
cd パス リモート側のカレントディレクトリ変更
pwd リモート側のカレントディレクトリ
mkdir パス リモート側にディレクトリ作成
lcd パス ローカル側のカレントディレクトリ変更
lpwd ローカル側のカレントディレクトリ
lmkdir パス ローカル側にディレクトリ作成
get リモートマシンからローカルマシンのファイルを取得 ディレクトリは「-r
put リモートマシンからローカルマシンへファイルを転送 ディレクトリは「-r

前の記事

Linux 重要用語