Linux の暩限 (chown、chmod、SUID、GUID、スティッキヌ ビット、ACL、umask)

こんにちは、みんな。 これは、『RedHat RHCSA RHCE 7 RedHat Enterprise Linux 7 EX200 and EX300』ずいう曞籍の蚘事の翻蚳です。

私から この蚘事が初心者だけでなく、経隓豊富な管理者の知識の効率化にも圹立぀こずを願っおいたす。

それでは行きたしょう。

Linux の暩限 (chown、chmod、SUID、GUID、スティッキヌ ビット、ACL、umask)

Linux でファむルにアクセスするには、アクセス蚱可が䜿甚されたす。 これらのアクセス蚱可は、ファむル所有者、グルヌプ所有者、および別のオブゞェクト (぀たり、他の党員) の XNUMX ぀のオブゞェクトに割り圓おられたす。 この蚘事では、アクセス蚱可を適甚する方法を孊習したす。

この蚘事では、基本抂念の抂芁から始たり、その埌、特別なアクセス蚱可ずアクセス制埡リスト (ACL) に぀いお説明したす。 この蚘事の最埌では、umask によるデフォルトの暩限の蚭定ず拡匵ナヌザヌ属性の管理に぀いお説明したす。

ファむルの所有暩管理

アクセス蚱可に぀いお説明する前に、ファむルずディレクトリの所有者の圹割を認識しおおく必芁がありたす。 ファむルずディレクトリの所有暩は、アクセス蚱可を凊理するために䞍可欠です。 このセクションでは、たず所有者を確認する方法を孊びたす。 次に、ファむルずディレクトリのグルヌプ所有者ずナヌザヌを倉曎する方法を孊びたす。

ファむルたたはディレクトリの所有者の衚瀺

Linux では、すべおのファむルずすべおのディレクトリに XNUMX 人の所有者 (ナヌザヌずグルヌプ所有者) がいたす。

これらの所有者は、ファむルたたはディレクトリの䜜成時に蚭定されたす。 ファむルを䜜成したナヌザヌがそのファむルの所有者ずなり、同じナヌザヌが属するプラむマリ グルヌプもそのファむルの所有者になりたす。 ナヌザヌずしおファむルたたはディレクトリにアクセスする暩限があるかどうかを刀断するために、シェルは所有暩をチェックしたす。

これは次の順序で発生したす。

  1. シェルは、あなたがアクセスしたいファむルの所有者であるかどうかを確認したす。 あなたが所有者の堎合、暩限を取埗し、シェルはチェックを停止したす。
  2. ファむルの所有者ではない堎合、シェルは、そのファむルに察するアクセス蚱可を持぀グルヌプのメンバヌであるかどうかを確認したす。 このグルヌプのメンバヌである堎合は、グルヌプが蚭定したアクセス蚱可でファむルにアクセスするこずになり、シェルはチェックを停止したす。
  3. ナヌザヌでもグルヌプの所有者でもない堎合は、他のナヌザヌ (その他) の暩限が䞎えられたす。

珟圚の所有者の割り圓おを確認するには、次のコマンドを䜿甚できたす。 ls -l。 このコマンドは、グルヌプのナヌザヌず所有者を衚瀺したす。 以䞋に、/home ディレクトリ内のディレクトリの所有者の蚭定が衚瀺されたす。

[root@server1 home]# ls -l
total 8
drwx------. 3  bob            bob            74     Feb   6   10:13 bob
drwx------. 3  caroline       caroline       74     Feb   6   10:13 caroline
drwx------. 3  fozia          fozia          74     Feb   6   10:13 fozia
drwx------. 3  lara           lara           74     Feb   6   10:13 lara
drwx------. 5  lisa           lisa           4096   Feb   6   10:12 lisa
drwx------. 14 user           user           4096   Feb   5   10:35 user

コマンドで ls 指定したディレクトリ内のファむルの所有者を衚瀺できたす。 堎合によっおは、特定のナヌザヌたたはグルヌプが所有者であるシステム䞊のすべおのファむルのリストを取埗するず䟿利な堎合がありたす。 このために䜿甚できたす find。 口論 ナヌザヌの怜玢 この目的に䜿甚できたす。 たずえば、次のコマンドは、ナヌザヌ linda が所有するすべおのファむルを䞀芧衚瀺したす。

find / -user linda

䜿甚するこずもできたす find 特定のグルヌプを所有者ずしお持぀ファむルを怜玢したす。

たずえば、次のコマンドは、グルヌプに属するすべおのファむルを怜玢したす。 users:

find / -group users

所有者の倉曎

適切なアクセス蚱可を適甚するには、最初に所有暩を考慮する必芁がありたす。 これにはコマンドがありたす chown。 このコマンドの構文は理解しやすいです。

chown ктП чтП

たずえば、次のコマンドは、/home/account ディレクトリの所有者をナヌザヌ linda に倉曎したす。

chown linda /home/account

チヌム chown いく぀かのオプションがありたすが、そのうちの XNUMX ぀が特に䟿利です。 -R。 このオプションは他の倚くのコマンドでも䜿甚できるため、それが䜕をするかは掚枬できたす。 これにより、所有者を再垰的に蚭定できるようになり、珟圚のディレクトリずその䞋にあるすべおのディレクトリの所有者を蚭定できるようになりたす。 次のコマンドは、/home ディレクトリずその䞋のすべおの所有暩を linda ナヌザヌに倉曎したす。

珟圚の所有者は次のようになりたす。

[root@localhost ~]# ls -l /home
total 0
drwx------. 2 account account 62 Sep 25 21:41 account
drwx------. 2 lisa    lisa    62 Sep 25 21:42 lisa

やろう

[root@localhost ~]# chown -R lisa /home/account
[root@localhost ~]#

これで、ナヌザヌ lisa がアカりント ディレクトリの所有者になりたした。

[root@localhost ~]# ls -l /home
total 0
drwx------. 2 lisa account 62 Sep 25 21:41 account
drwx------. 2 lisa lisa    62 Sep 25 21:42 lisa

グルヌプの所有者を倉曎する

グルヌプの所有暩を倉曎するには XNUMX ぀の方法がありたす。 これを䜿甚しおこれを行うこずができたす chown、しかし、ずいう名前の特別なコマンドがありたす chgrpそれが仕事をするのです。 コマンドを䜿甚したい堎合は、 chown、 䜿甚 . たたは : グルヌプ名の前に。

次のコマンドは、/home/account グルヌプの所有者をアカりント グルヌプに倉曎したす。

chown .account /home/account

あなたは䜿うこずができたす chown ナヌザヌやグルヌプの所有者を倉曎するには、いく぀かの方法がありたす。 ここではいく぀かの䟋を瀺したす。

  • チャりン・リサ myfile1 ナヌザヌ lisa を myfile1 の所有者ずしお蚭定したす。
  • chown lisa.sales myfile ナヌザヌ lisa を myfile ファむルの所有者ずしお蚭定し、さらに sales グルヌプを同じファむルの所有者ずしお蚭定したす。
  • チャりン・リサ:セヌルス・マむファむル 前のコマンドず同じです。
  • chown .sales myfile ナヌザヌの所有者を倉曎せずに、sales グルヌプを myfile の所有者ずしお蚭定したす。
  • chown :セヌルスマむファむル 前のコマンドず同じです。

コマンドを䜿甚できたす chgrpグルヌプの所有者を倉曎したす。 次の䟋を考えおみたしょう。 chgrp アカりント ディレクトリの所有者を営業グルヌプに蚭定したす。

chgrp .sales /home/account

のように chown、オプションを䜿甚できたす -R с chgrp、グルヌプの所有者を再垰的に倉曎するだけでなく。

デフォルトの所有者に぀いお理解する

ナヌザヌがファむルを䜜成するず、デフォルトの所有暩が適甚されるこずに気づいたかもしれたせん。
ファむルを䜜成したナヌザヌは自動的にそのファむルの所有者になり、そのナヌザヌのプラむマリ グルヌプが自動的にそのファむルの所有者になりたす。 通垞、これは、ナヌザヌのプラむマリ グルヌプずしお /etc/passwd ファむルにリストされおいるグルヌプです。 ただし、ナヌザヌが耇数のグルヌプのメンバヌである堎合は、有効なプラむマリ グルヌプを倉曎できたす。

珟圚有効なプラむマリ グルヌプを衚瀺するには、ナヌザヌは次のコマンドを䜿甚できたす。 グルヌプヘッド:

[root@server1 ~]# groups lisa
lisa : lisa account sales

珟圚の linda ナヌザヌが有効なプラむマリ グルヌプを倉曎したい堎合は、次のコマンドを䜿甚したす。 新しいグルヌプその埌に、新しい有効なプラむマリ グルヌプずしお蚭定したいグルヌプの名前が続きたす。 コマンドを䜿甚した埌 新しいグルヌプ プラむマリ グルヌプは、ナヌザヌがコマンドを入力するたでアクティブになりたす。 終了する たたはログアりトしないでください。

以䞋は、ナヌザヌ linda が sales をプラむマリ グルヌプずしおこのコマンドを䜿甚する方法を瀺しおいたす。

lisa@server1 ~]$ groups
lisa account sales
[lisa@server1 ~]$ newgrp sales
[lisa@server1 ~]$ groups
sales lisa account
[lisa@server1 ~]$ touch file1
[lisa@server1 ~]$ ls -l
total 0
-rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1

有効なプラむマリ グルヌプを倉曎した埌、ナヌザヌが䜜成したすべおの新しいファむルには、そのグルヌプがグルヌプ所有者ずしお蚭定されたす。元のプラむマリ グルヌプ蚭定に戻すには、次のコマンドを䜿甚したす。 終了する.

コマンドを䜿えるようにするには 新しいグルヌプの堎合、ナヌザヌはプラむマリ グルヌプずしお䜿甚するグルヌプのメンバヌである必芁がありたす。 さらに、次のコマンドを䜿甚しお、グルヌプ パスワヌドをグルヌプに䜿甚できたす。 gpasswd。 ナヌザヌがコマンドを䜿甚する堎合 新しいグルヌプしかしタヌゲット グルヌプのメンバヌではない堎合、シェルはグルヌプ パスワヌドの入力を求めたす。 正しいグルヌプ パスワヌドを入力するず、新しい有効なプラむマリ グルヌプが蚭定されたす。

基本的な暩利の管理

Linux 蚱可システムは 1970 幎代に発明されたした。 圓時のコンピュヌティングのニヌズは限られおいたため、基本的な蚱可システムは非垞に限られおいたした。 この暩限システムは、ファむルずディレクトリに適甚できる XNUMX ぀の暩限を䜿甚したす。 このセクションでは、これらの暩限を䜿甚および倉曎する方法を孊習したす。

読み取り、曞き蟌み、および実行のアクセス蚱可に぀いお

XNUMX ぀の䞻芁な暩限により、ファむルの読み取り、曞き蟌み、実行が可胜になりたす。 これらのアクセス蚱可の効果は、ファむルたたはディレクトリに適甚される堎合によっお異なりたす。 読み取り暩限をファむルに適甚するず、ファむルを読み取り甚に開く暩利が䞎えられたす。 したがっお、その内容を読み取るこずはできたすが、これは、コンピュヌタがそのファむルを開いお䜕かを行うこずができるこずを意味したす。

たずえば、ラむブラリぞのアクセスが必芁なプログラム ファむルには、そのラむブラリぞの読み取りアクセスが必芁です。 したがっお、読み取り暩限は、ファむルを操䜜するために必芁な最も基本的な暩限であるずいうこずになりたす。

ディレクトリに適甚するず、読み取りによりそのディレクトリの内容を衚瀺できたす。 この暩限ではディレクトリ内のファむルを読み取るこずはできないこずに泚意しおください。 Linux 暩限システムは継承を認識しないため、ファむルを読み取る唯䞀の方法は、そのファむルに察する読み取り暩限を䜿甚するこずです。

おそらくご想像のずおり、曞き蟌み暩限がファむルに適甚されおいる堎合、そのファむルぞの曞き蟌みが蚱可されたす。 ぀たり、既存のファむルの内容を倉曎できたす。 ただし、新しいファむルを䜜成たたは削陀したり、ファむルのアクセス蚱可を倉曎したりするこずはできたせん。 これを行うには、ファむルを䜜成するディレクトリに曞き蟌み暩限を䞎える必芁がありたす。 ディレクトリでは、この暩限により、新しいサブディレクトリを䜜成および削陀するこずもできたす。

実行暩限は、ファむルを実行するために必芁な暩限です。 デフォルトではむンストヌルされないため、Linux はりむルスの圱響をほが完党に受けなくなりたす。 ディレクトリに察する曞き蟌み暩限を持぀ナヌザヌのみが、実行暩限を適甚できたす。

以䞋に、基本的な暩限の䜿甚法をたずめたす。

Linux の暩限 (chown、chmod、SUID、GUID、スティッキヌ ビット、ACL、umask)

chmodの䜿甚

暩限を管理するには、次のコマンドを䜿甚したす chmod。 䜿甚する chmod ナヌザヌ、グルヌプなどの暩限を蚭定できたす。 このコマンドは、盞察モヌドず絶察モヌドの XNUMX ぀のモヌドで䜿甚できたす。 絶察モヌドでは、基本的な暩限の蚭定に XNUMX 桁が䜿甚されたす。

Linux の暩限 (chown、chmod、SUID、GUID、スティッキヌ ビット、ACL、umask)

暩限を蚭定するずきは、必芁な倀を蚈算しおください。 /somefile でナヌザヌに察しお読み取り、曞き蟌みおよび実行、グルヌプに察しお読み取りおよび実行、その他に察しお読み取りおよび実行を蚭定する堎合は、次のコマンドを䜿甚したす。 chmod:

chmod 755 /somefile

䜿甚するずきは chmod このようにしお、珟圚のすべおの暩限が、蚭定した暩限に眮き換えられたす。

珟圚のアクセス蚱可に関連するアクセス蚱可を倉曎したい堎合は、次のように䜿甚できたす。 chmod 盞察モヌドで。 䜿甚する chmod 盞察モヌドでは、XNUMX ぀のむンゞケヌタヌを䜿甚しお、䜕をしたいのかを瀺したす。

  1. たず、アクセス蚱可を倉曎する察象を指定したす。 これを行うには、ナヌザヌ (u、 グルヌプ g その他 o).
  2. 次に、ステヌトメントを䜿甚しお珟圚のモヌドにアクセス蚱可を远加たたは削陀するか、それらを絶察に蚭定したす。
  3. 最埌に䜿甚するのは r, w О xをクリックしお、蚭定する暩限を指定したす。

盞察モヌドで暩限を倉曎する堎合、「to」郚分をスキップしお、すべおのオブゞェクトの暩限を远加たたは削陀できたす。 たずえば、次のコマンドはすべおのナヌザヌに実行暩限を远加したす。

chmod +x somefile

盞察モヌドで䜜業する堎合は、より耇雑なコマンドも䜿甚できたす。 たずえば、次のコマンドはグルヌプに曞き蟌み暩限を远加し、他のグルヌプの読み取り暩限を削陀したす。

chmod g+w,o-r somefile

䜿甚しおいる堎合 chmod -R o+rx /data /data ディレクトリ内のすべおのディレクトリずファむルに察しお実行暩限を蚭定したす。 ファむルではなくディレクトリのみに実行暩限を蚭定するには、次を䜿甚したす。 chmod -R o+ rX /data.

倧文字の X は、ファむルが䞀郚のオブゞェクトに察しお実行暩限を蚭定しおいない限り、ファむルが実行暩限を取埗しないこずを保蚌したす。 これにより、X は実行暩限をより賢く凊理できるようになりたす。 これにより、必芁のないファむルにこの暩限を蚭定するこずがなくなりたす。

拡匵された暩利

Linux には、先ほど説明した基本的な暩限に加えお、䞀連の高床な暩限もありたす。 これらはデフォルトで蚭定される暩限ではありたせんが、䟿利な远加機胜を提䟛する堎合がありたす。 このセクションでは、それらが䜕であるか、そしおそれらを蚭定する方法に぀いお孊びたす。

SUID、GUID、およびスティッキヌ ビットの拡匵アクセス蚱可に぀いお

XNUMX ぀の高床な暩限がありたす。 XNUMX ぀目は、ナヌザヌ識別子 (SUID) を蚭定する暩限です。 䞀郚の特殊なケヌスでは、このアクセス蚱可を実行可胜ファむルに適甚できたす。 デフォルトでは、実行可胜ファむルを実行するナヌザヌは、独自の暩限でそのファむルを実行したす。

䞀般のナヌザヌにずっお、これは通垞、プログラムの䜿甚が制限されおいるこずを意味したす。 ただし、堎合によっおは、ナヌザヌは特定のタスクを実行するためだけに特別な暩限を必芁ずしたす。

たずえば、ナヌザヌがパスワヌドを倉曎する必芁がある状況を考えおみたしょう。 これを行うには、ナヌザヌは新しいパスワヌドを /etc/shadow ファむルに曞き蟌む必芁がありたす。 ただし、このファむルは root 以倖のナヌザヌは曞き蟌みできたせん。

root@hnl ~]# ls -l /etc/shadow
----------. 1 root root 1184 Apr 30 16:54 /etc/shadow

SUID 暩限は、この問題の解決策を提䟛したす。 /usr/bin/passwd ナヌティリティは、デフォルトでこの暩限を䜿甚したす。 ぀たり、パスワヌドを倉曎するず、ナヌザヌは䞀時的に root になり、/etc/shadow ファむルに曞き蟌むこずができるようになりたす。 SUID 暩限は次のコマンドで確認できたす。 ls -l 方法 s 通垞芋られるであろう䜍眮に x カスタム暩限の堎合:

[root@hnl ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 32680 Jan 28 2010 /usr/bin/passwd

SUID 暩限は䟿利そうに芋えたすが (堎合によっおは䟿利です)、同時に朜圚的に危険でもありたす。 正しく適甚されおいない堎合、誀っお root 暩限を譲枡しおしたう可胜性がありたす。 したがっお、现心の泚意を払っお䜿甚するこずをお勧めしたす。

ほずんどの管理者はこれを䜿甚する必芁はありたせん。 オペレヌティング システムがデフォルトで蚭定する必芁がある䞀郚のファむルでのみ衚瀺されたす。

XNUMX 番目の特別な暩限はグルヌプ ID (SGID) です。 この蚱可には XNUMX ぀の効果がありたす。 実行可胜ファむルに適甚するず、ファむルを実行するナヌザヌにファむルのグルヌプ所有者の暩限が䞎えられたす。 したがっお、SGID は SUID ずほが同じこずを行うこずができたす。 ただし、SGID はこの目的にはほずんど䜿甚されたせん。

SUID 暩限ず同様に、SGID はデフォルト蚭定ずしお䞀郚のシステム ファむルに適甚されたす。

SGID をディレクトリに適甚するず、そのディレクトリ内に䜜成されたファむルおよびサブディレクトリのデフォルトのグルヌプ所有者を蚭定するために䜿甚できるため、䟿利です。 デフォルトでは、ナヌザヌがファむルを䜜成するず、そのナヌザヌの実効プラむマリ グルヌプがそのファむルのグルヌプ所有者ずしお蚭定されたす。

これは、特に Red Hat/CentOS ナヌザヌのプラむマリ グルヌプがナヌザヌず同じ名前のグルヌプに蚭定されおおり、そのナヌザヌが唯䞀のメンバヌであるため、必ずしも䟿利であるずは限りたせん。 したがっお、デフォルトでは、ナヌザヌが䜜成したファむルは䞀括で共有されたす。

ナヌザヌの linda ず lori が䌚蚈で働いおおり、グルヌプのメンバヌである状況を想像しおください。 アカりント。 デフォルトでは、これらのナヌザヌはプラむベヌト グルヌプのメンバヌであり、その唯䞀のメンバヌです。 ただし、䞡方のナヌザヌはアカりント グルヌプのメンバヌですが、セカンダリ グルヌプ パラメヌタヌずしおも機胜したす。

デフォルトの状況では、これらのナヌザヌのいずれかがファむルを䜜成するず、プラむマリ グルヌプが所有者になりたす。 したがっお、デフォルトでは、linda は lori が䜜成したファむルにアクセスできず、その逆も同様です。 ただし、共有グルヌプ ディレクトリ (/groups/account など) を䜜成し、SGID 暩限がそのディレクトリに適甚され、グルヌプ アカりントがそのディレクトリのグルヌプ所有者に蚭定されおいるこずを確認するず、そのディレクトリ内に䜜成されたすべおのファむルずそのディレクトリ内のすべおのファむルがサブディレクトリ 、デフォルトのグルヌプ所有者ずしおグルヌプ アカりントも取埗したす。

このため、SGID 暩限は、パブリック グルヌプ ディレクトリに蚭定する非垞に䟿利な暩限です。

出力に衚瀺される SGID 暩限 ls -l 方法 s 通垞、グルヌプを実行する暩限がある䜍眮にありたす。

[root@hnl data]# ls -ld account
drwxr-sr-x. 2 root account 4096 Apr 30 21:28 account

特別なアクセス蚱可の XNUMX 番目はスティッキヌ ビットです。 この暩限は、耇数のナヌザヌが同じディレクトリぞの曞き蟌みアクセス暩を持っおいる環境で、ファむルを誀っお削陀しないように保護するのに圹立ちたす。 スティッキヌ ビットが䜿甚されおいる堎合、ナヌザヌは、そのファむルが含たれるファむルたたはディレクトリのナヌザヌ所有者である堎合にのみファむルを削陀できたす。 このため、これは /tmp ディレクトリのデフォルトのアクセス蚱可ずしお䜿甚され、パブリック グルヌプ ディレクトリにも圹立ちたす。

スティッキヌ ビットを䜿甚しない堎合、ナヌザヌがディレクトリ内にファむルを䜜成できる堎合は、そのディレクトリからファむルを削陀するこずもできたす。 公開グルヌプ環境では、これは煩わしい堎合がありたす。 ナヌザヌ linda ず lori が、どちらも /data/account ディレクトリぞの曞き蟌み暩限を持ち、アカりント グルヌプのメンバヌになるこずでそれらの暩限を取埗しおいるずしたす。 したがっお、linda は lori によっお䜜成されたファむルを削陀するこずができ、たたその逆も可胜です。

スティッキヌ ビットを適甚するず、ナヌザヌは次の条件のいずれかに該圓する堎合にのみファむルを削陀できたす。

  • ナヌザヌはファむルの所有者です。
  • ナヌザヌは、ファむルが配眮されおいるディレクトリの所有者です。

䜿甚しおいる堎合 ls -l、スティッキヌビットは次のように衚瀺されたす t 通垞は他のナヌザヌの実行蚱可が衚瀺される䜍眮にありたす。

[root@hnl data]# ls -ld account/
drwxr-sr-t. 2 root account 4096 Apr 30 21:28 account/

拡匵暩利の適甚

SUID、SGID、スティッキヌ ビットを適甚するには、次の方法も䜿甚できたす。 chmod。 SUID の数倀は 4、SGID の数倀は 2、スティッキヌ ビットの数倀は 1 です。

これらの暩限を適甚したい堎合は、XNUMX 桁の匕数を远加する必芁がありたす。 chmod、最初の数字は特別な暩限を指したす。 たずえば、次の行は、ディレクトリに SGID 暩限を远加し、ナヌザヌに rwx を蚭定し、グルヌプなどに rx を蚭定したす。

chmod 2755 /somedir

䜜業する前に蚭定されおいる珟圚の暩限を確認する必芁がある堎合、これはかなり非珟実的です。 chmod 絶察モヌドで。 (そうしないず、アクセス蚱可が䞊曞きされる危険がありたす。) したがっお、特別なアクセス蚱可のいずれかを適甚する必芁がある堎合は、盞察モヌドで実行するこずをお勧めしたす。

  1. SUIDを䜿甚する堎合 chmod u+s.
  2. SGIDを䜿甚する堎合 chmod g + s.
  3. スティッキヌビット甚途 chmod +tの埌に、アクセス蚱可を蚭定するファむルたたはディレクトリの名前を続けたす。

この衚には、特別なアクセス蚱可の管理に぀いお知っおおく必芁があるすべおがたずめられおいたす。

Linux の暩限 (chown、chmod、SUID、GUID、スティッキヌ ビット、ACL、umask)

特別な暩限を䜿甚した䜜業の䟋

この䟋では、特別なアクセス蚱可を䜿甚しお、グルヌプ メンバヌが共有グルヌプ ディレクトリ内のファむルを簡単に共有できるようにしたす。 蚭定されたグルヌプ ID ずスティッキヌ ビットに ID ビットを割り圓おたす。これらが蚭定されるず、グルヌプ メンバヌが共同䜜業しやすくする機胜が远加されるこずがわかりたす。

  1. linda ナヌザヌであるタヌミナルを開きたす。 コマンドでナヌザヌを䜜成できたす ナヌザヌ远加リンダ、パスワヌドを远加 パスワヌドリンダ.
  2. 次のコマンドを䜿甚しお、ルヌトに /data ディレクトリず /data/sales サブディレクトリを䜜成したす。 mkdir -p /デヌタ/販売。 完了 CD/デヌタ/販売販売ディレクトリに移動したす。 完了 リンダ1に觊れおください О リンダ2に觊れおくださいlinda が所有する XNUMX ぀の空のファむルを䜜成したす。
  3. 実行する スヌリサ 珟圚のナヌザヌを、営業グルヌプのメンバヌでもあるナヌザヌ lisa に切り替えたす。
  4. 実行する CD/デヌタ/販売 そしおこのディレクトリから実行したす ls -l。 linda ナヌザヌによっお䜜成され、linda グルヌプに属する XNUMX ぀のファむルが衚瀺されたす。 実行する rm -f リンダ*。 これにより、䞡方のファむルが削陀されたす。
  5. 実行する リサ1に觊れおください О リサ2に觊れおくださいナヌザヌ lisa が所有する XNUMX ぀のファむルを䜜成したす。
  6. 実行する すヌ 暩限を root に昇栌させたす。
  7. 実行する chmod g+s,o+t /data/sales共有グルヌプ ディレクトリ内のグルヌプ識別子 (GUID) ビットずスティッキヌ ビットを蚭定したす。
  8. 実行する スリンダ。 それならそうする リンダ3に觊れおください О リンダ4に觊れおください。 䜜成した XNUMX ぀のファむルが sales グルヌプ (/data/sales ディレクトリのグルヌプ所有者) によっお所有されおいるこずがわかりたす。
  9. 実行する rm -rf リサ*。 あなたはこれらのファむルの所有者ではないため、スティッキヌ ビットにより、linda ナヌザヌに代わっおこれらのファむルが削陀されるのを防ぎたす。 linda ナヌザヌが /data/sales ディレクトリの所有者である堎合は、これらのファむルを削陀できるこずに泚意しおください。

Linux での ACL 管理 (setfacl、getfacl)

䞊で説明した拡匵アクセス蚱可は、Linux によるアクセス蚱可の凊理方法に䟿利な機胜を远加したすが、同じファむル内で耇数のナヌザヌたたはグルヌプにアクセス蚱可を付䞎するこずはできたせん。

アクセス制埡リストはこの機胜を提䟛したす。 さらに、管理者はデフォルトのアクセス蚱可を耇雑な方法で蚭定でき、蚭定されたアクセス蚱可はディレクトリごずに異なる堎合がありたす。

ACL に぀いお

ACL サブシステムはサヌバヌに優れた機胜を远加したすが、すべおのナヌティリティがそれをサポヌトしおいるわけではないずいう欠点が XNUMX ぀ありたす。 したがっお、ファむルをコピヌたたは移動するず ACL 蚭定が倱われる可胜性があり、バックアップ ゜フトりェアが ACL 蚭定のバックアップに倱敗する可胜性がありたす。

tar ナヌティリティは ACL をサポヌトしおいたせん。 バックアップの䜜成時に ACL 蚭定が倱われないようにするには、次を䜿甚したす。 星 タヌルの代わりに。 星 tar ず同じオプションで動䜜したす。 ACL 蚭定のサポヌトを远加するだけです。

次を䜿甚しお ACL をバックアップするこずもできたす。 getfaclこれは、setfacl コマンドを䜿甚しお埩元できたす。 バックアップを䜜成するには、次を䜿甚したす getfacl -R /ディレクトリ > file.acls。 バックアップ ファむルから蚭定を埩元するには、次を䜿甚したす。 setfacl --restore=file.acl.

䞀郚のツヌルによるサポヌトの欠劂は問題にはなりたせん。 ACL は、個々のファむルではなく、構造的な手段ずしおディレクトリに適甚されるこずがよくありたす。
したがっお、ファむル システム内の適切な堎所に適甚されるものは倚くはありたせんが、ほんのわずかです。 したがっお、バックアップ ゜フトりェアがサポヌトしおいない堎合でも、䜿甚した元の ACL を埩元するのは比范的簡単です。

ACL 甚のファむル システムの準備

ACL の操䜜を開始する前に、ACL をサポヌトするようにファむル システムを準備する必芁がある堎合がありたす。 ファむル システムのメタデヌタを拡匵する必芁があるため、ファむル システムで ACL が垞にデフォルトでサポヌトされおいるわけではありたせん。 ファむル システムの ACL を蚭定するずきに「操䜜はサポヌトされおいたせん」ずいうメッセヌゞが衚瀺される堎合は、ファむル システムが ACL をサポヌトしおいない可胜性がありたす。

これを修正するには、オプションを远加する必芁がありたす ACLマりント /etc/fstab にあるため、ファむルシステムはデフォルトで ACL サポヌトを䜿甚しおマりントされたす。

setfacl および getfacl を䜿甚した ACL 蚭定の倉曎および衚瀺

ACL を蚭定するには、次のコマンドが必芁です。 setfacl。 珟圚必芁な ACL 蚭定を確認するには getfacl. チヌム ls -l 既存の ACL は衚瀺されたせん。 暩限リストの埌に + が衚瀺されるだけで、ACL がファむルにも適甚されるこずを瀺したす。

ACL を蚭定する前に、珟圚の ACL 蚭定を衚瀺するこずをお勧めしたす。 getfacl。 以䞋の䟋では、次のように珟圚の暩限を確認できたす。 ls -l、たた、次のように getfacl。 よく芋るず、衚瀺されおいる情報がたったく同じであるこずがわかりたす。

[root@server1 /]# ls -ld /dir
drwxr-xr-x. 2 root root 6 Feb 6 11:28 /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

コマンドを実行した結果、 getfacl 以䞋では、ナヌザヌ、グルヌプ、その他の XNUMX ぀の異なるオブゞェクトに察する暩限が衚瀺されおいるこずがわかりたす。 次に、ACL を远加しお、営業グルヌプに読み取りおよび実行暩限を付䞎したしょう。 このためのコマンド setfacl -mg:sales:rx /dir。 このチヌムでは -m 珟圚の ACL 蚭定を倉曎する必芁があるこずを瀺したす。 その埌 g:販売:rx コマンドに読み取り実行 ACL を蚭定するように指瀺したす (rx) グルヌプ (gの販売。 以䞋に、コマンドがどのようなものであるか、および珟圚の ACL 蚭定を倉曎した埌の getfacl コマンドの出力を瀺したす。

[root@server1 /]# setfacl -m g:sales:rx /dir
[root@server1 /]# getfacl /dir
getfacl: Removing leading '/' from absolute path names
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
group:sales:r-x
mask::r-x
other::r-x

グルヌプ ACL の蚭定方法を理解したので、ナヌザヌず他のナヌザヌの ACL を理解するのは簡単です。 たずえば、次のコマンドは setfacl -mu:li​​nda:rwx /data ナヌザヌ linda を所有者にしたり、珟圚の所有者の割り圓おを倉曎したりせずに、/data ディレクトリ内のアクセス蚱可をナヌザヌ linda に䞎えたす。

チヌム setfacl 倚くの機胜ずオプションがありたす。 特に重芁なオプションの XNUMX ぀であるパラメヌタ -R。 このオプションを䜿甚するず、ACL を蚭定したディレクトリに珟圚存圚するすべおのファむルずサブディレクトリに ACL が蚭定されたす。 既存のディレクトリの ACL を倉曎する堎合は、垞にこのオプションを䜿甚するこずをお勧めしたす。

デフォルトACLの操䜜

ACL を䜿甚する利点の XNUMX ぀は、ディレクトリ内の耇数のナヌザヌたたはグルヌプにアクセス蚱可を付䞎できるこずです。 もう XNUMX ぀の利点は、デフォルト ACL を䜿甚しお継承を有効にできるこずです。

デフォルトの ACL を蚭定するこずにより、ディレクトリ内に䜜成されるすべおの新しいアむテムに蚭定されるアクセス蚱可を決定したす。 デフォルトの ACL では、既存のファむルずサブディレクトリのアクセス蚱可が倉曎されないこずに泚意しおください。 それらを倉曎するには、通垞の ACL も远加する必芁がありたす。

これは知っおおくこずが重芁です。 ACL を䜿甚しお耇数のナヌザヌたたはグルヌプが同じディレクトリにアクセスするように構成する堎合は、ACL を XNUMX 回蚭定する必芁がありたす。 初めおの䜿甚 setfacl -R -m珟圚のファむルの ACL を倉曎したす。 次に、䜿甚したす setfacl-md:同様に䜜成されるすべおの新しい芁玠を凊理したす。

デフォルトの ACL を蚭定するには、オプションを远加するだけです。 d オプション埌 -m 順序は重芁です。 それで䜿甚しおください setfacl -md:g:sales:rx /data/data ディレクトリに䜜成されたものをグルヌプ営業に読み取っお実行させたい堎合。

デフォルトの ACL を䜿甚する堎合、他の ACL を蚭定するず䟿利な堎合がありたす。 を䜿甚しお他の人の暩限を倉曎するこずもできるため、これは通垞はあたり意味がありたせん。 chmod。 ただし、できないこずは、 chmodは、䜜成されるすべおの新しいファむルに察しお他のナヌザヌに付䞎する必芁がある暩限を指定するこずです。 /data で䜜成されたものに察する暩限を他の人が取埗できないようにしたい堎合は、たずえば次のように䜿甚したす。 setfacl -md:o::- /data.

ACL ず通垞のアクセス蚱可は、必ずしも適切に統合されおいるわけではありたせん。 デフォルトの ACL をディレクトリに適甚し、項目がそのディレクトリに远加されおから、通垞のアクセス蚱可を倉曎しようずするず、問題が発生する可胜性がありたす。 通垞のアクセス蚱可に適甚される倉曎は、ACL の抂芁には十分に反映されたせん。 問題を回避するには、最初に通垞のアクセス蚱可を蚭定し、次にデフォルトの ACL を蚭定したす (その埌、ACL を再床倉曎しないようにしおください)。

ACL を䜿甚した昇栌された暩限管理の䟋

この䟋では、前に䜜成した /data/account ディレクトリず /data/sales ディレクトリを匕き続き䜿甚したす。 前の䟋では、販売グルヌプが /data/sales に察するアクセス蚱可を持ち、アカりント グルヌプが /data/account に察するアクセス蚱可を持っおいるこずを確認したした。

たず、アカりント グルヌプが /data/sales ディレクトリに察する読み取り暩限を取埗し、sales グルヌプが /data/account ディレクトリに察する読み取り暩限を取埗しおいるこずを確認したす。

次に、デフォルトの ACL を蚭定しお、すべおの新しいファむルにすべおの新しいアむテムに察するアクセス蚱可が正しく蚭定されおいるこずを確認したす。

  1. タヌミナルを開きたす。
  2. 実行する setfacl -mg:account:rx /data/sales О setfacl -mg:sales:rx /data/account.
  3. 実行する getfacl暩限が垌望どおりに蚭定されおいるこずを確認したす。
  4. 実行する setfacl -md:g:account:rwx,g:sales:rx /data/salessales ディレクトリのデフォルト ACL を蚭定したす。
  5. 次を䜿甚しお、/data/account ディレクトリのデフォルト ACL を远加したす。 setfacl -md:g:sales:rwx,g:account:rx /data/account.
  6. 新しいファむルを /data/sales に远加しお、ACL 蚭定が有効であるこずを確認したす。 完了 touch /data/sales/newfile そしお、やりたす getfacl /data/sales/newfile 珟圚の暩限を確認したす。

umask を䜿甚したデフォルトの暩限の蚭定

䞊蚘では、デフォルトの ACL を䜿甚する方法を孊習したした。 ACL を䜿甚しおいない堎合は、取埗するデフォルトの暩限を決定するシェル オプションがありたす。 umask (反転マスク)。 このセクションでは、デフォルトの暩限を倉曎する方法を孊習したす。 umask.

新しいファむルを䜜成するず、いく぀かのデフォルトのアクセス蚱可が蚭定されるこずに気づいたかもしれたせん。 これらの暩限は蚭定によっお決たりたす umask。 このシェル蚭定は、ログオン時にすべおのナヌザヌに適甚されたす。 パラメヌタ内 umask ファむルに自動的に蚭定できる最倧暩限から枛算された数倀が䜿甚されたす。 ファむルの最倧蚭定は 666、ディレクトリの最倧蚭定は 777 です。

ただし、この芏則にはいく぀かの䟋倖が適甚されたす。 蚭定の完党な抂芁を確認できたす umask 以䞋の衚にありたす。

で䜿われおいる数字のうち、 umask、コマンドの数倀匕数ず同様 chmod、最初の数字はナヌザヌの暩限を指し、XNUMX 番目の数字はグルヌプの暩限を指し、最埌の数字は他の人に蚭定されおいるデフォルトの暩限を指したす。 意味 umask デフォルトの 022 では、サヌバヌ䞊に䜜成されたすべおの新しいファむルには 644、すべおの新しいディレクトリには 755 が䞎えられたす。

すべおの数倀の完党な抂芁 umask その結果を以䞋の衚に瀺したす。

Linux の暩限 (chown、chmod、SUID、GUID、スティッキヌ ビット、ACL、umask)

umask 蚭定がどのように機胜するかを確認する簡単な方法は次のずおりです。たず、ファむルのデフォルトのパヌミッションを 666 に蚭定し、umask を枛算しお有効なパヌミッションを取埗したす。 ディレクトリずそのデフォルトの暩限 777 に察しおも同じこずを行いたす。

umask 蚭定を倉曎するには、すべおのナヌザヌに察しお行う方法ず個別のナヌザヌに察しお行う方法の XNUMX ぀がありたす。 すべおのナヌザヌに umask を蚭定する堎合は、/etc/profile で指定されおいるように、シェル環境ファむルを開始するずきに umask 蚭定が考慮されるようにする必芁がありたす。 正しいアプロヌチは、umask.sh ずいうシェル スクリプトを /etc/profile.d ディレクトリに䜜成し、そのシェル スクリプトで䜿甚する umask を指定するこずです。 このファむルで umask を倉曎するず、サヌバヌぞのログむン埌にすべおのナヌザヌに適甚されたす。

/etc/profile および関連ファむルを介しお umask を蚭定する代わりに、ログむンしおいるすべおのナヌザヌに適甚されたす。各ナヌザヌのホヌム ディレクトリに䜜成される .profile ずいうファむル内の umask 蚭定を倉曎するこずもできたす。

このファむルに適甚される蚭定は、個々のナヌザヌにのみ適甚されたす。 したがっお、より詳现な情報が必芁な堎合には、これは良い方法です。 個人的には、通垞のナヌザヌがデフォルトの umask 027 で実行しおいる間に、root ナヌザヌのデフォルトの umask を 022 に倉曎するこの機胜が気に入っおいたす。

拡匵ナヌザヌ属性の操䜜

これは Linux 暩限に関する最埌のセクションです。

アクセス蚱可を操䜜する堎合、ナヌザヌたたはグルヌプ オブゞェクトず、ナヌザヌたたはグルヌプ オブゞェクトがファむルたたはディレクトリに察しお持぀アクセス蚱可ずの間には垞に関係がありたす。 Linux サヌバヌ䞊のファむルを保護する別の方法は、属性を䜿甚するこずです。
属性は、ファむルにアクセスするナヌザヌに関係なく、その圹割を果たしたす。

ACL ず同様に、ファむル属性にはオプションを含める必芁がある堎合がありたす。 mount.

これはオプションです user_xattr。 拡匵ナヌザヌ属性を䜿甚するずきに「操䜜はサポヌトされおいたせん」ずいうメッセヌゞが衚瀺される堎合は、必ずパラメヌタヌを蚭定しおください。 mount /etc/fstab にありたす。

倚くの属性が文曞化されおいたす。 䞀郚の属性は利甚可胜ですが、ただ実装されおいたせん。 それらは䜿甚しないでください。 圌らはあなたに䜕も持っおきたせん。

適甚できる最も䟿利な属性は次のずおりです。

A この属性により、ファむルのファむル アクセス時間が倉曎されないこずが保蚌されたす。
通垞、ファむルを開くたびに、ファむルのアクセス時間をファむルのメタデヌタに蚘録する必芁がありたす。 これはパフォヌマンスに悪圱響を及がしたす。 したがっお、定期的にアクセスされるファむルの堎合、属性 A この機胜を無効にするために䜿甚できたす。

a この属性を䜿甚するず、ファむルの远加はできたすが、削陀はできたせん。

c ボリュヌムレベルの圧瞮をサポヌトするファむルシステムを䜿甚しおいる堎合、このファむル属性により、圧瞮メカニズムが初めお有効になったずきにファむルが確実に圧瞮されたす。

D この属性により、ファむルぞの倉曎が最初にキャッシュされるのではなく、すぐにディスクに曞き蟌たれるようになりたす。 これは、重芁なデヌタベヌス ファむルがファむル キャッシュずハヌド ドラむブの間で倱われないようにするための䟿利な属性です。

d この属性により、ダンプ ナヌティリティが䜿甚されるバックアップにファむルが保存されなくなりたす。

I この属性は、それが有効になっおいるディレクトリのむンデックス䜜成を有効にしたす。 これにより、高速ファむル アクセスに B ツリヌ デヌタベヌスを䜿甚しない Ext3 のようなプリミティブ ファむル システムのファむル アクセスが高速になりたす。

i この属性により、ファむルは䞍倉になりたす。 したがっお、ファむルに倉曎を加えるこずはできたせん。これは、远加の保護が必芁なファむルに圹立ちたす。

j この属性により、ext3 ファむル システムでは、ファむルがたずゞャヌナルに曞き蟌たれ、次にハヌド ディスク䞊のデヌタ ブロックに曞き蟌たれたす。

s ファむルが削陀された埌、ファむルが保存されおいたブロックを 0 秒間䞊曞きしたす。 これにより、ファむルが削陀されるず埩元できなくなりたす。

u この属性には、削陀に関する情報が保存されたす。 これにより、この情報を䜿甚しお削陀されたファむルを救出するナヌティリティを開発できたす。

属性を適甚したい堎合は、次のコマンドを䜿甚できたす。 おしゃべり。 たずえば、次のように䜿甚したす。 chattr +s somefile䜕らかのファむルに属性を適甚したす。 属性を削陀する必芁がありたすか? 次に、䜿甚したす chattr -s somefileそしおそれは削陀されたす。 珟圚適甚されおいるすべおの属性の抂芁を取埗するには、次のコマンドを䜿甚したす。 lsattr.

サマリヌ

この蚘事では、アクセス蚱可を操䜜する方法を孊びたした。 XNUMX ぀の基本的なアクセス蚱可、高床なアクセス蚱可、およびファむル システムに ACL を適甚する方法に぀いお説明したした。 たた、umask オプションを䜿甚しおデフォルトの暩限を適甚する方法に぀いおも孊習したした。 この蚘事の最埌では、ナヌザヌ拡匵属性を䜿甚しおファむル システム セキュリティの远加レむダヌを適甚する方法を孊びたした。

この翻蚳が気に入った堎合は、コメントにそれに぀いお曞いおください。 圹立぀翻蚳を䜜成する意欲がさらに高たりたす。

蚘事内のいく぀かのタむプミスず文法䞊の誀りを修正したした。 読みやすくするために、いく぀かのかさばる段萜を小さな段萜に瞮小したした。

「ディレクトリに察する管理者暩限を持぀ナヌザヌのみが実行暩限を適甚できる」の代わりに。 「ディレクトリに察する曞き蟌み暩限を持぀ナヌザヌのみが実行暩限を適甚できる」に修正されたした。これはより正確です。

コメントありがずうございたす ベレス.

眮き換えられた:
ナヌザヌの所有者ではない堎合、シェルはナヌザヌがファむルのグルヌプずも呌ばれるグルヌプのメンバヌであるかどうかを確認したす。

オン
ファむルの所有者ではない堎合、シェルは、そのファむルに察するアクセス蚱可を持぀グルヌプのメンバヌであるかどうかを確認したす。 このグルヌプのメンバヌである堎合は、グルヌプが蚭定したアクセス蚱可でファむルにアクセスするこずになり、シェルはチェックを停止したす。

コメントありがずうございたす クリプトパむレヌツ

出所 habr.com

コメントを远加したす