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

LinuxでSuコマンドを使用する方法

このチュートリアルでは、Unix / Linuxでのsuコマンド(ユーザーの切り替え)とは何か、およびsuコマンドとsuコマンドの違いについて学習します。 Linuxはマルチユーザーオペレーティングシステムカーネルです。つまり、複数のユーザーがLinuxシステムに同時にログインできます。

suコマンドを使用して、コマンドライン自体で異なるユーザーを切り替えることができます。 suコマンドは、「substitute user」の略であるか、ユーザーを切り替えることができます。このコマンドは、ユーザーの資格情報を指定されたユーザーまたはルートの資格情報に変更します(デフォルト)。

suコマンドの機能

上記のように、suコマンドは、ユーザーの資格情報を他のユーザーの資格情報に変更します。例を見てみましょう

[raghu@redhat-server ~]$ su jack
Password:
[jack@redhat-server raghu]$ id
uid=501(jack) gid=501(jack) groups=501(jack),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh

idコマンドは、現在のユーザーに関する情報を出力します。上記の出力では、変更されたユーザーを確認できます。 suコマンドに引数が指定されていない場合、デフォルトでrootユーザーに変更されます。 Ubuntuのmanページで詳細が説明されています。

[jack@redhat-server raghu]$ su
Password:
[root@redhat-server raghu]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t:SystemLow-SystemHigh

suを使用したログインのシミュレーション-

su--loginまたはsu-lまたは単に「su-」コマンドを使用すると、端末からのログインであるかのようにユーザーを切り替えることができます。

[raghu@redhat-server ~]$ su - jack
Password:
[jack@redhat-server ~]$ id
uid=501(jack) gid=501(jack) groups=501(jack),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh

suとsuの違い-

'su'と'su-'の違いは、PATH変数などの一部の環境変数は、suだけでは値を変更しないことです(つまり、-lオプションまたは-が省略されている場合)。 PATHが正しく設定されていないと、一部のコマンドが実行されない場合があります。たとえば、次のシナリオを考えてみましょう。

[jack@redhat-server ~]$ su root
Password:
[root@redhat-server jack]# fdisk -l
bash: fdisk: command not found
[root@redhat-server jack]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/jack/bin

sbinディレクトリがrootユーザーのPATHに含まれていないことがわかります。したがって、fdiskコマンドは実行されません。ここで、su --command:

を使用してログインしようとします。
[jack@redhat-server ~]$ su -
Password:
[root@redhat-server ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1044 8281507+ 8e Linux LVM
[root@redhat-server ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

これら2つのコマンドのもう1つの違いは、ログインスクリプトです。まず、いくつかのログインスクリプトについて説明しましょう:

ユーザーがシステムにログインすると、ユーザーの資格情報が正当である場合、次の4つのファイルが実行されます。

/etc/profile
/etc/bashrc
~/.bashrc
~/.bash_profile

'su-'コマンドでログインすると、これらのスクリプトがすべて実行されます。ただし、suでは、bashrcスクリプトのみが実行されます。つまり、/ etc / bashrcスクリプトと〜。/bashrcスクリプトが実行されます。

ubuntuでは、suコマンドを実行すると認証が失敗する場合があります。このエラーが発生するのは、ubuntuではrootアカウントがデフォルトで無効になっているためです。

user@host:~$ su
Password:
su: Authentication failure

suの代わりにsudo -iを使用します またはsudo その後にコマンドが続きます。

結論

このチュートリアルでは、Linuxでの「su」コマンドと「su-」コマンドの違いを学びました。詳細については、mansuを参照してください。読んで楽しんでいただければ幸いです。以下に提案を残してください。

関連項目:

  • 例を使って学ぶための38の基本的なLinuxコマンド
  • DebianのSudoersにユーザーを追加する方法

Linux
  1. Linuxgrepコマンドの使用方法

  2. Linuxでhistoryコマンドを使用する方法

  3. Linux screen コマンドの使用方法

  1. Linuxの履歴コマンドの使用方法

  2. Linux で ldconfig コマンドを使用する方法

  3. Linux で ipset コマンドを使用する方法

  1. LinuxでDisownコマンドを使用する方法

  2. LinuxSSコマンドの使用方法

  3. Linuxnohupコマンドの使用方法