ファイルのアクセス許可を変更するには、宿題の問題に関するサポートが必要です。 -rwxr-xr-x
にしたいですか?ユーザーのアクセス許可の作成方法がわからない。ありがとうございました。
宿題を分析しましょう:-rwxr-xr-x
、3つの部分に分割します-rwx|r-x|r-x
:
rwx
:ユーザーまたは所有者の読み取り、書き込み、実行r-x
:グループメンバーの読み取り、書き込みなし、実行r-x
:2
と同じですが、今回は他のすべての人、別名others
と同じです。いいえ、許可変更プログラムchmod
を使用してコマンドを実行する必要はありません。
chmod 755 filename
説明:
許可を次のように変更します。
- user: 7 => r(4), w(2), x(1)
- group: 5 => r(4), -, x(1)
- others: r(4), -, x(1)
これを行うには、またはそのファイルまたはフォルダーを所有しているか、Sudoグループに属している必要があります。
許可を設定するための、より「おしゃべりな」バージョンもあります。
chmod u=rwx,g=rx,o=rx filename
これの意味は:
u=
)rwx
パーミッションを付与し、g=
)rx
パーミッションを付与し、o=
)rx
パーミッションを付与します。変更したくない部分は省くことができます。例:
chmod u=rwx filename
ユーザーの権限を設定し、他のユーザーはそのままにします。
許可を「追加」または「除外」することもできます。
chmod g-x filename
グループのx
権限を削除し、
chmod o+w filename
他のユーザーに書き込み許可を追加します。
SUID、SGID、およびスティッキービットを設定するには、s
およびt
権限を使用します。
chmod u+s filename
-SUIDを設定しますchmod g+s filename
-SGIDを設定しますchmod a+t filename
-スティッキービットを設定します(a
は「すべて」を意味します。つまり、u
およびg
およびo
)必須のプリアンブル
システム内の重要なファイルとディレクトリのパーミッションを変更すると、 物事がひどく壊れる になります。システムを再インストールしたり、ライブセッションからデータを取得したりするのが不便な場合は、許可と所有権を安全に試してください。ファイルシステムと基本的なコマンドについて学習している間、avoidchmod
およびchown
をSudo
とともに、またはルートシェルで実行する。このように、アクセス権エラーは、あなたが何か危険なことをしている可能性があることを知らせ、コマンドを再度チェックする必要があります。
chmod
を使用してファイルのアクセス許可を変更します。このコマンドには、再帰フラグ-R
があります。通常、このフラグは不必要に使用されますが、ほとんどの場合、ディレクトリにディレクトリ内のファイルと同じアクセス許可を与えたくないため、有用ではありません。ディレクトリには入力するための実行許可が必要なので、ファイルがないと便利ではありませんが、ファイルはプログラムである場合にのみ実行許可が必要です。 -R
フラグがないと、chmod
は限定的で修復可能なダメージしか与えられませんが、-R
を使用すると、1つのコマンドでシステムをひどく混乱させることができます。 -R
を使用している場合は、本当に必要かどうかを検討し、入力ミスがないかファイルパスを確認してください。
ファイルを提供するように求められたモードは一般的なものです
-rwxr-xr-x
先頭のダッシュは、これが通常のファイルであることを示しています。 3か所のx
ビットは、すべてのユーザーが実行できる必要があることを示しています。したがって、このモードは誰でも実行できるプログラムに適しています。 /usr/bin
、/bin
などのファイルを調べるとわかるように、システム上のほとんどのプログラムにはこのモードがあります(この回答の後半でアクセス許可を調べる方法について説明します)。セキュリティ上、所有者であるrootのみがこれらのファイルに書き込み(変更)できることが重要です。そのため、実行するプログラムは、root権限を持たないユーザーによって誤って(または別の方法で)変更できません。
George Udosen's answer で指摘されているように、許可ビットはユーザー(ファイルの所有者)、グループ、その他に個別に設定されます。これは、たとえば chmod
のタグwiki で説明されており、インターネットやシステムのその他の多くの場所でも説明されています。 man chmod
を実行することでそれについて読むことができます。ファイルの所有者がファイルを読み取り可能、書き込み可能、実行可能にし、グループや他のユーザーがファイルを読み取り可能、書き込み可能にするように求められました。 ls -ld file
を実行すると、ファイルの所有者とグループを確認できます(-d
は、ディレクトリの場合にのみ必要です。そのフラグがない場合、ls
はディレクトリ自体ではなくディレクトリの内容を表示します)。あまり関係のない情報が必要な場合は、stat
を使用します。
stat -c '%U %G' file
-c
は、出力を制御することを意味します。 %U
=ファイルの所有者、%G
=グループ。 file
は、メタデータを調べるファイルへのパスに置き換える必要があります。現在のディレクトリにある場合、その名前で十分ですが、ファイルのパスを他の場所に指定できます。
$ stat -c '%U %G' /var/log/syslog
syslog adm
stat
コマンドは、ファイル許可を8進数および「人間が読める」形式で表示することもできます。
stat -c '%n %a %A' *
(%n
を使用してファイル名を表示し、*
を使用して、現在のディレクトリ内のすべての非表示でないファイルでstat
を実行しました。)
特定の8進数がchmod
を表す許可ビットを忘れた場合、これは非常に便利なリファレンスになりますが、 vidarlo's answer はそれらを思い出す良い方法を提供します。
手動で設定する以外は元のモードを「リセット」する方法がないため、重要なファイルのアクセス権を変更する前に調べることを強くお勧めします。
他の回答では、必要なファイルモードの設定方法を8進表記で説明しています。 chmod
は、8進数と同様に記号表記のファイルモードを受け入れます。これは、1つの許可ビット(そのrwxr-xr-x
文字列の1文字)のみを変更する場合に便利です。 Perl Duck's answer は、これを実行して必要なモードを設定する方法を説明しています。
スクリプトを作成し、それを実行可能にしたい場合、これがchmod
を使用する主な理由です。このコマンドでは、シンボリック表記を使用して実行権限を与え、他の変更は行いません。
chmod u+x file
スクリプトをすべてのユーザーが実行できるようにする必要がある場合は、u
なしで実行します。
chmod +x file
これはおそらく現在の状況では十分でしょう。ファイルは多くの場合、所有者による読み取りと書き込みを許可する権限でデフォルトで作成され、グループおよび他のユーザーのみが読み取り可能ですが、グループの書き込み権限で作成される可能性もあります。これは、ユーザーがファイルを作成するときに設定する umask
に依存します。ファイルを作成して見てみましょう!
$ touch somefile
$ stat -c '%a %A' somefile
664 -rw-rw-r--
OK。したがって、モード755
を取得するには、w
セクションからg
ビットを削除し、すべての場所にx
ビットを追加する必要があります。
シンボリック表記では、次のようにできます。
$ chmod +x,g-w somefile
$ stat -c '%a %A' somefile
755 -rwxr-xr-x
chmod
に+x
を記述する別の方法は、a+x
です。 a
はすべてを表し、文字が指定されていない場合に想定されます。重要:u
はユーザーを意味し、所有者を意味しますが、o
は他を意味します(not所有者)。
a
u
g
またはo
のすべてのビットを=
記号で設定することもできます。役に立たない許可設定で遊んでいます:
$ chmod =x somefile
$ stat -c '%a %A' somefile
111 ---x--x--x
$ chmod u=r,g=rwx,o= somefile
$ stat -c '%a %A' somefile
470 -r--rwx---
8進表記と記号表記の両方を使用して、setuid(これは所有者としてプログラムを実行できるので危険です)やsetgid(これにより、ディレクトリ内に作成されたファイルがsetgidでディレクトリのグループ所有権を継承します)のような特別なビットを追加できます特定のファイルシステムの場所にいるユーザーのグループのアクセス許可を常にいじることなく制御できるため便利です。
8進数表記が好きな人もいれば、シンボリックが好きな人もいます。後者はもう少し柔軟で、一部の人にとってはもう少し直感的です。両方のテストと学習を(安全に!)行うことをお勧めします。これにより、chmod
コマンドが表示されたときに何が実行されるかを把握し、それに関する宿題の問題をflairで解決できます。
chmod
に注意してください。何をしているかわからない限り、Sudo chmod
を使用しないでください。 -R
フラグを使用する前に慎重に検討してください。stat
はあなたの友達です8進数の許可で考えるのが最も簡単です:
これは、ビット単位で設定すると簡単にわかります。
r w x
0 0 1 #Execute = 1
0 1 0 #Write = 2
1 0 0 #Read = 4
1 0 1 #Read + Execute = 5
1 1 0 #Read + Write = 6
1 1 1 #All permissions = 7
これらは追加できます。読み取りおよび実行は4 + 1 = 5です。読み取り、実行、書き込みは7(4 + 2 + 1)、書き込みのみは2などです。
権限には、ユーザー、グループ、その他の3桁があります。ユーザーのrwxは、最初の数字が7(完全な許可)になります。グループのr-xは1 + 4 = 5になり、その他のr-xは5になります。したがって、これはパーミッション755と等しくなります。
chmod
コマンドの構文は次のとおりです。
chmod [options] {permissions} file-name
ファイル/フォルダーのアクセス許可を設定する前に、ファイル/フォルダーのParent Directory
にいる必要があります。
r(read) - 4
w(write) - 2
x(execute) - 1
今、あなたの仕事からセットを分析します:(-rwxr-xr-x)
次のように4つの部分に分けます。
1。-File Type
2。 rwx User
。 r-x Group
4。 r-x Others
したがって、最後にファイルに許可を与えるには:
2。 rwx:4 + 2 + 1 = 7
。 r-x:4 + 0 + 1 = 5
4。 r-x:4 + 0 + 1 = 5
したがって、コマンドは
chmod 755 *filename*