GNU/Linux >> Linux の 問題 >  >> Linux

初心者向けのLinuxChownコマンドチュートリアル(12例)

Linuxでは、ファイルまたはディレクトリの所有者およびグループ関連の情報を変更したい場合があります。コマンドラインの初心者で、コマンドラインからそのような変更を加える方法を知りたい場合は、 chownと呼ばれるコマンドが存在することを知って喜ぶでしょう。 -これで可能になります。

chownコマンドのチュートリアルを開始する前に、ここで説明するすべての例と手順がUbuntu18.04LTSとDebian10でテストされていることを言及する価値があります。

Linuxchownコマンドの説明

冒頭ですでに述べたように、chownコマンドを使用すると、コマンドラインからファイルの所有者とグループを変更できます。コマンドの一般的な構文は次のとおりです。

chown [OPTION]... [OWNER][:[GROUP]] FILE...

ツールのマニュアルページには、次のように記載されています。

If only  an  owner  (a user  name or numeric user ID) is given, that user is made the owner of each
given file, and the files' group is not changed.  If the owner  is followed  by  a  colon  and a
group name (or numeric group ID), with no spaces between them, the group ownership of the  files  is
changed  as well.  If a colon but no group name follows the user name, that user is made the owner
of the files and the group of the files  is  changed  to that  user's  login  group. If the colon
and group are given, but the owner is omitted, only the group of the files is changed; in this case,
chown  performs  the same function as chgrp.  If only a colon is given, or if the entire operand is
empty, neither the owner nor the  group  is changed.

次のQ&Aタイプの例は、chownコマンドがどのように機能するかについての良いアイデアを提供します。

Q1。ファイルの所有者を変更するにはどうすればよいですか?

次の例を考えてみましょう:

ここで、ファイルの所有者は「himanshu」であり、ファイルが属するグループも「himanshu」です。ここで、所有者を「root」に変更するには、次のコマンドを使用します。

chown root file1

次のスクリーンショットは、所有者が「root」に変更されたことを確認しています。

Q2。ファイルのグループを変更するにはどうすればよいですか?

グループの変更は、所有者の変更に似ています。唯一の違いは、コマンドの構文にあります。これは次のとおりです。

chown :[group-name] [file-name]

したがって、要件が「file1」のグループを「root」に変更することであると仮定します。その場合、コマンドは次のようになります。

chown :root file1

次のスクリーンショットは、グループが「himanshu」から「root」に正常に変更されたことを示しています。

:「sudo」コマンドが使用された理由がわからない場合、または「sudo」を初めて使用する場合は、最初にこのツールのチュートリアルを実行する必要があります。

Q3。ファイルの所有者とグループの両方を変更するにはどうすればよいですか?

ファイルの所有者とグループの両方を変更するには、次の構文を使用します。

chown [new-owner]:[new-group] [file-name]

したがって、この場合、既存の所有者とグループを「root」から「himanshu」に変更するには、次のコマンドを使用します。

chown himanshu:himanshu file1

次のスクリーンショットは、上記のコマンドの動作を示しています。

Q4。既存の所有者/グループを確認した後、所有者またはグループ(あるいはその両方)を変更するにはどうすればよいですか?

変更を加える前に、まずファイルの既存の所有者/グループをクロスチェックしたい場合があります。したがって、そのような場合は、-fromを使用できます。 コマンドラインオプション。このオプションでは、確認する所有者/グループ名を指定する必要があります。

chown --from=[curr-own]:[curr-group] [new-owner]:[new-group] [filename]

例:

chown --from=root:himanshu himanshu:root file1

上記のコマンドは、既存の所有者が「root」であり、グループが「himanshu」であるかどうかを確認します。はいの場合、所有者は「ひまんしゅ」に変更され、グループは「ルート」になります。

Q5。参照ファイルから所有者/グループ情報を選択するにはどうすればよいですか?

また、コマンドラインで手動で入力するのではなく、chownがファイルから所有者およびグループ関連の情報を取得したい場合もあります。そのような場合は、-referenceを使用できます コマンドラインオプション。このオプションでは、参照ファイルの名前を入力する必要があります。

chown --reference=[ref-file-name] [filename]

例:

chown --reference=file2 file1

したがって、上記のコマンドは、所有者とグループの情報をfile2からfile1にコピーします。

Q6。 chownをファイルとディレクトリで再帰的に動作させる方法は?

chownコマンドをファイルとディレクトリで再帰的に操作するには、 -Rを使用します コマンドラインオプション。

chown -R [new-owner]:[new-group] [directory-name-or-path]

知らない人にとって、再帰とは、指定されたディレクトリ内のすべてのファイル、およびすべてのサブディレクトリ内のファイルとディレクトリに対して操作が実行されることを意味します。

Q7。 chownでエラーメッセージを抑制するにはどうすればよいですか?

実行したchownコマンドでエラーが発生する場合があります。たとえば、私のシステムで実行した場合の次のコマンド:

chown --from=himanshu:himanshu himanshu:root file4

次のエラーが発生しました:

chown: cannot access 'file4': No such file or directory

ここで、ツールがそのようなエラーを表示してはならないという要件があるとします。次に、これは -fを使用して可能になります コマンドラインオプション。

前述のスクリーンショットは、 -fであることを確認しています。 コマンドラインオプションはエラー/警告を抑制します。

Q8。グループの所有権を指定したユーザーのログイングループに変更するにはどうすればよいですか?

これは、 [user / owner]:を使用して実行できます。 構文。たとえば、次のコマンド:

chown himanshu: file1

所有権が「himanshu」に付与され、グループが「himanshu」のログイングループに変更されることを確認します。これは、コロン(:)を使用しない場合とは異なることに注意してください。その場合(上記のQ1で説明)、グループは変更されません。

ここで言及する価値のあるもう1つの点は、所有者またはグループを指定せずにコロン(:)を使用した場合、変更は行われないということです。例:

chown : file1

このコマンドは、ファイルのユーザーまたはグループの所有権には影響しません。

デフォルトでは、シンボリックリンクのユーザーとグループの所有権を変更しようとしても、変更はありません。代わりに、リンク先のファイルがこれらの変更を取得します。

たとえば、次のスクリーンショットは、ユーザーとグループの所有権が「himanshu」に設定されているシンボリックリンク「link1」を作成したことを示しています。次に、chownコマンドを実行して、ユーザーとグループを「root」に変更しました。ただし、このコマンドはシンボリックリンクファイルには影響しませんでした。代わりに、ユーザーとグループの所有権が変更されたのは「file1」(シンボリックリンクが指す)です。

ただし、必要に応じて、-hオプションを使用してこのデフォルトの動作をオーバーライドできます。

Q10。ディレクトリの所有者とグループを変更するにはどうすればよいですか?

ファイルの場合と同じように。次に例を示します。

chown root:root ./test-dir/

statコマンドを使用して、ディレクトリの所有者とグループの変更を相互検証できることに注意してください。出力のUIDフィールドとGIDフィールドには、ユーザー名とグループ名が表示されます。

たとえば、私の場合、出力には変更されたユーザーグループの所有権が明確に示されていました。

  File: test-dir
  Size: 4096          Blocks: 8          IO Block: 4096   directory
Device: 808h/2056d    Inode: 11928001    Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-08-07 10:31:04.867467573 +0530
Modify: 2018-08-07 10:30:53.651807123 +0530
Change: 2018-08-07 10:32:49.644427930 +0530
 Birth: -

再帰的な変更を行い(-Rオプションについて説明しているQ&Aを参照)、シンボリックリンクを扱っている場合は、次のオプションを自由に使用できます。

       The following options modify how a hierarchy is traversed when  the  -R
       option  is  also  specified.   If  more than one is specified, only the
       final one takes effect.

       -H     if a command line argument is a symbolic link  to  a  directory,
              traverse it

       -L     traverse every symbolic link to a directory encountered

       -P     do not traverse any symbolic links (default)

Q11。ユーザー名とグループ名の代わりにUIDとGIDを使用できますか?

はい、名前の代わりにユーザーIDとグループIDを使用できます。ただし、コマンドの構文は同じです。

例:

chown 1000:1000 file1

上記のコマンドは、ユーザーとグループの所有権をUID1000のユーザーとGID1000のグループに変更します。

Q12。 chownに操作の詳細を出力に表示させる方法は?

chownコマンドで実行する操作の詳細を表示する場合は、-vコマンドラインオプションを使用します。

たとえば、次のコマンド:

sudo chown himanshu:himanshu link1 -v

次の出力を生成します:

changed ownership of 'link1' from root:root to himanshu:himanshu

さて、-vのように機能する別のオプション-cがありますが、何も変更されていない場合は詳細が表示されません。

結論

ほとんどの人が同意するように、chownコマンドの使用は難しくありません。さらに優れているのは、ツールのマニュアルページに、ユーザー(特に初心者)に役立つ可能性のある詳細が多数含まれていることです。ここで説明した例を試してみてください。残りの機能/オプションについては、chownのマニュアルページを参照してください。疑問や質問がある場合は、下にコメントを残してください。


Linux
  1. 初心者向けのLinuxcdコマンドチュートリアル(8例)

  2. 初心者向けのLinux日付コマンドチュートリアル(8例)

  3. 初心者向けのLinuxホスト名コマンドチュートリアル(5つの例)

  1. 初心者向けのLinux通信コマンドチュートリアル(5例)

  2. 初心者向けのLinuxdfコマンドチュートリアル(8例)

  3. 初心者向けのLinuxduコマンドチュートリアル(10例)

  1. 初心者向けのLinuxechoコマンドチュートリアル(5つの例)

  2. 初心者向けのLinuxenvコマンドチュートリアル(5つの例)

  3. 初心者向けのLinuxサイズのコマンドチュートリアル(6つの例)