Linuxは、1つのマシンへ複数のユーザーが同時にログインして
操作することを前提として作られているので
他のユーザーから編集できないようにする設定について書きます。
ユーザーの設定
ユーザーは基本一般とrootに分けられています。
ファイルに対して権限レベルの違があります。
SSHでリモートサーバにログインするときにユーザー名を指定してログインすることで
リモートサーバでの権限を調整することができます。
rootユーザーはサーバ上の全てのファイルの閲覧することができ
すべてのコマンド実行することができるので
SSHを使ってrootユーザーを使うことは避けましょう。
$ ssh root@ex.com
$ ssh gimei@ex.com
一般ユーザー
一般ユーザーは自分の許可されているファイルしか操作できません。
rootユーザー
root ユーザーには他のユーザーが所有するファイルも含めて、全ての制御権限があります。
管理者権限
一時的に管理者権限が必要になることや
サーバ内の他のユーザーに代わってコマンドを実行する必要な時のコマンドです。
sudo
現在のユーザーのまま他のユーザーに成り代わってコマンドを実行することができます。
ただし予めsudoが使える権限がそのユーザーに付与されている必要があります。
su
他のユーザーにログインし直す事ができます。
このコマンドはいつでも使うことができますが、成り代わろうとしているユーザーのパスワードが必要です。
所有者
ファイルには、その持ち主がいます。その持ち主を所有者と呼びます。
ファイルを作成すると、作成したユーザーがその所有者として設定されます。
所有者にだけ書き込み権限を与えておけば、そのファイルを他のユーザーに変更される心配はありません。
パーミッション
ファイル、またはディレクトリに対して「誰にどのような操作を許可するのか」という権限を規定した情報のことです。
所有者、その他のユーザーのそれぞれに対して、読み込み(r)、書き込み(w)、実行(x)
の権限を与えるものになります。
r(read) 読み込み権限
ファイルを開いて中身をみれる
w(write) 書込み権限
ファイル記述の追加と変更ができる。
x(execute) 実行権限
ファイルを実行、ディレクトリを開くことができる。
権限の確認
権限の確認はls -l [権限を確認したいファイルのパス]で確認できます。
$ ls -l [権限を確認したいファイルのパス]
例
$ ls -l projects/sample
出力結果
drwxr-xr-x 01 taka main 748 1 01 12:12 sample
「誰にどのような操作を許可するのか」というのは、ターミナルに出力される
「 rwx r-x r-x 」の部分で確認できます。
下記に格項目を書くと
所有者
1桁目が、マスター権限を持っているユーザー。
読み込み権限(r)・書き込み権限(w)・実行権限(x)が可能です。
グループユーザー
2桁目がグループに属しているユーザー
読み込み権限(r)・実行権限(x)が可能です。
一般ユーザー
3桁目がその他のユーザー
読み込み権限(r)・実行権限(x)が可能です。
権限の数値の意味 r=4、w=2、x=1
それぞれの権限には、r=4、w=2、x=1 という数字が割り当てられています。
アクセス権限は、3桁の数字で表されます。
一桁ずつが権限を与える所有者、グループ、そして一般ユーザーを表しています。
1桁目が、マスター権限を持っているユーザー。
2桁目がグループに属しているユーザー。
3桁目がその他のユーザーです。
マスター権限とは、ファイルやディレクトリの所有権のことです。
そして、それぞれの桁の数字は、各ユーザーが所有しているアクセス権限の数値を足し合わせた値になります。
例えば、755という値について見てみましょう。
一桁目の7がr=4、w=2、x=1の合計になっていますね。
つまり、マスター権限を持っているユーザーが、読み、書き、実行、の全てを行うことができるという意味になります。
二桁目と三桁目は、共に5となっています。これは、r ( = 4 ) + x ( = 1 ) の合計ですので
つまりグループに属しているユーザーと、属していない一般のユーザーには、ファイルの読み込みと実行はできるけれど書き換える権限が与えられていないということになります。
権限の変更
chmod
アクセス権限を書き換えるためのコマンドです。
chmod [与える権限の種類] [権限を行使する主体]
$ chmod 777 sample/pictweet
権限の数値の意味より
7は全権限を許可するという意味で
3桁ともなってるいるということは
全てのユーザーに全権限を許可するという意味です。
chown
ファイルやディレクトリの所有者を変更するコマンドです。
chown [所有者][ファイル名・ディレクトリ名]という構成で入力します