なぜ権限管理が必要なのでしょうか? 1. コンピュータ リソースは限られているため、コンピュータ リソースを合理的に割り当てる必要があります。 2. Linux はマルチユーザー システムです。すべてのユーザーにとって、個人のプライバシーの保護は非常に重要です。 ディレクトリのrwx権限 現在のユーザー: testdir ディレクトリを作成し、testdir ディレクトリに入ります。ファイルテストを作成します。 $ mkdir テストディレクトリ $ cd テストディレクトリ $ タッチテスト testdirの権限を000に変更し、ls testdirを実行してみてください。 $ chmod 000 テストディレクトリ $ ls テストディレクトリ/ ls: ディレクトリ testdir/ を開けません: 権限が拒否されました testdirの権限を400に変更し、ls testdirを実行してみてください。 $ chmod 400 テストディレクトリ ls -l テストディレクトリ/ ls: testdir/test にアクセスできません: 権限が拒否されました 合計 0 -????????? ? ? ? ? ? テスト 結果: ディレクトリ内のファイル リストは読み取れますが、現在のユーザーが /testdir/test の所有者であり、rwx 権限を持っているにもかかわらず、特定のファイル情報 (権限、サイズ、ユーザー グループ、時間など) は表示されません。 ディレクトリの r 権限により、ディレクトリ内のファイルのリストを読み取ることができます。 さあ、testdir ディレクトリに変更してみましょう。 $ cd テストディレクトリ/ -bash: cd: testdir/: アクセス権が拒否されました r 権限ではディレクトリに入ることができないようです。 x権限を追加してみましょう。 ~$ chmod 500 テストディレクトリ/ ~$ cd テストディレクトリ/ ~/testdir$ ls -l 合計 0 -rw-rw-r-- 1 放浪者 放浪者 0 11月19日 08:16 テスト 正常に入力されました。 ディレクトリに対して x 権限を持っていると、そのディレクトリに入ることができます。この作業ディレクトリでは、ファイルリストとファイル属性情報を表示できます。 テスト ファイルを削除するか、新しいファイル test1 を作成してみてください。 ~/testdir$ rm テスト rm: 'test' を削除できません: 権限が拒否されました ~/testdir$ タッチテスト1 タッチ: 'test1' をタッチできません: 権限が拒否されました ディレクトリに対して rx 権限を持っていても、ディレクトリの内容を変更することはできません。ディレクトリ内のファイルのリストは、ディレクトリの内容と見なすことができます。 ディレクトリに対する w 権限を持つユーザーは、ディレクトリの内容を追加または削除できます。 ~/testdir$ chmod 700 。 ~/testdir$ rm テスト ~/testdir$ タッチテスト1 ~/testdir$ ls -l 合計 0 -rw-rw-r-- 1 放浪者 放浪者 0 11月19日 08:30 test1 umask 上記の例では、作成した新しいファイルの権限は 664 (-rw-rw-r--) です。デフォルトの権限が 664 なのはなぜですか? 新しいファイルのデフォルトの権限を変更したい場合はどうすればよいですか? コンソール入力umask: $ umask 0002 umask は権限の 2 の補数です。ファイルのデフォルトの権限は 666 - umask です。 作成したファイルに対して他のユーザーに r 権限を与えたくない場合は、補足コードを 0006 に変更できます。 ~/testdir$ umask 0006 ~/testdir$ タッチテスト2 ~/testdir$ ls -l | grep test2 -rw-rw---- 1 放浪者 放浪者 0 11月19日 08:38 test2 デフォルトのファイル権限が 777 - umask ではないのはなぜですか?新しく作成されたファイルにはデフォルトでは実行権限がないため、rw 権限のみを考慮すると、この操作は当然 666 になります。 デフォルトでは、ディレクトリには x の権限があります。umask が 0002 の場合、作成されたディレクトリのデフォルトの権限は 777 - 0002 = 775 になります。 ~/testdir$ mkdir dir1 ~/testdir$ ls -l | grep dir1 drwxrwxr-x 2 vagrant vagrant 4096 11月19日 08:39 dir1 特別な権限 スイド 一般的に言えば、ファイルの権限は rwx です。 passwd (パスワード変更コマンド) の権限を確認しましょう。 ~/testdir$ ls -l /usr/bin/passwd -rwsr-xr-x 1 root root 47032 2017年5月16日 /usr/bin/passwd よく見ると、ユーザー権限の x ビットが実際には s であることがわかります。この権限は SUID と呼ばれ、バイナリ プログラムに対してのみ有効です。 ユーザーがファイルの実行権限を持っている場合、ファイルを実行すると、一時的にファイル所有者の権限のサポートが取得されます。 たとえば、すべてのユーザーのパスワードは /etc/shadow ファイルに保存され、ファイルのデフォルトの権限は -r-------- root root です。root ユーザーのみに必須の書き込み権限があります。では、なぜ一般ユーザーがパスワードを変更できるのでしょうか? passwd コマンドには SUID 権限があるため、ユーザーがこのコマンドを実行すると、ファイル所有者の root の権限サポートが取得され、自分のパスワードが変更されます。 SGID グループの x 位置が s になると、ファイルに SGID 権限があることを意味します。 SGID 権限はバイナリ プログラムに対して有効です。 SUID と同様に、ユーザーがファイルに対して x 権限を持っている場合、ファイルを実行すると、そのファイルが属するユーザー グループが権限サポートを取得します。 バイナリ プログラムに加えて、ディレクトリにも SGID を設定できます。 ユーザーがディレクトリに対して SGID 権限を持っている場合: このディレクトリ内のユーザーの有効なユーザー グループが、このディレクトリのユーザー グループになります。 ユーザーがディレクトリに対して w 権限を持っている場合、そのディレクトリ内でユーザーが作成したファイルのユーザー グループは、ディレクトリのユーザー グループと同じになります。 この権限はプロジェクト開発にとって重要です。 スビット この権限は現在、ディレクトリに対してのみ有効です: ユーザーがこのディレクトリに対して w,x 権限を持っている場合、ユーザーがこのディレクトリの下にフォルダーまたはディレクトリを作成した後、そのファイルを削除する権限を持つのはユーザーと root のみです。 Others の x 権限ビットが t の場合、フォルダーに SBIT 権限があることを意味します。 たとえば、/tmp ディレクトリの場合: $ ls -l / | grep tmp drwxrwxrwt 4 ルート ルート 4096 11月19日 09:09 tmp $ sudo -s # タッチテスト root@vagrant-ubuntu-trusty-64:/tmp# 終了 出口 vagrant@vagrant-ubuntu-trusty-64:/tmp$ rm テスト rm: 書き込み禁止の通常の空のファイル 'test' を削除しますか? y rm: 'test' を削除できません: 操作は許可されていません 上記3つの権限を設定する方法 通常の権限設定の 3 つの数字の前に別の数字を追加すると、その前の数字は次の権限を表します。
例えば: # chmod 777 /tmp # ls -l / | grep tmp drwxrwxrwx 4 ルート ルート 4096 11月19日 09:17 tmp # chmod 1777 /tmp # ls -l / | grep tmp drwxrwxrwt 4 ルート ルート 4096 11月19日 09:17 tmp 終わり。 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。 以下もご興味があるかもしれません:
|
<<: jQuery における Ajax の関連知識ポイントのまとめ
>>: Win 8 以降での最新の MySQL バージョン 5.7.17 (64 ビット ZIP グリーン バージョン) のインストールと展開のチュートリアル
目次CSS カスタム変数機能は古くから存在していますが、実際の開発ではあまり使用されていません。その...
Nginx は同じドメイン名で構成されており、http と https の両方でアクセスできます。証...
IDEA は Java で最も一般的に使用されている開発ツールであり、Docker は最も人気のある...
現在のスクロール オフセットを html 要素の属性に追加することで、現在のスクロール位置に基づいて...
Linux のデフォルトの ssh リモート ポートは 22 です。デフォルトのポートは、悪意のある...
序文私のように、Java バックエンドに勤勉な人であれば、多数のプロジェクト機能を実装することに加え...
この記事では、Navicatを使用してcsvデータをmysqlにインポートする方法を参考までに紹介し...
問題を見つける最近、以前のデータを入力していたときに、プログラムが突然次のエラーを報告しました。 [...
ブラウザがHTMLを読み込みレンダリングする順序1. IE は上から下へダウンロードし、上から下へレ...
MySQL 8.0.25の最新のダウンロードとインストールのチュートリアルは参考になります。具体的な...
MySQL で group by を使用すると常にエラー 1055 が発生するため、原因を確認する...
目次1. ソリューション 1 (UDF)デモケース2. ソリューション2(binlogの解析)キャナ...
目次1. コンポーネントの登録1.1 グローバル登録1.2 グローバルコンポーネントの登録プロセス1...
MVCC MVCC (Multi-Version Concurrency Control) は、マル...
Docker は、安全で繰り返し可能な環境でソフトウェアを自動的にデプロイする方法を提供し、コンピュ...