web-dev-qa-db-ja.com

すべてのユーザーをリストするコマンド?そして、ユーザーを追加、削除、変更する方法は?

ターミナルのすべてのユーザーを一覧表示するコマンドが必要です。そして、ターミナルからユーザーを追加、削除、変更する方法。

これは、端末でアカウントを簡単に管理するのに役立ちます。

853
nux

リストへ

すべてのlocalユーザーをリストするには:

cut -d: -f1 /etc/passwd

非ローカルを含む(何らかの方法で)認証可能なすべてのユーザーをリストするには、 this reply を参照してください。

さらに便利なユーザー管理コマンド(localユーザーに限定):

たす

新しいユーザーを追加するには、次を使用できます。

Sudo adduser new_username

または:

Sudo useradd new_username

参照: adduserとuseraddの違いは何ですか?

削除/削除するには

ユーザーを削除/削除するには、まず次を使用できます。

Sudo userdel username

次に、削除したユーザーアカウントのホームディレクトリを削除することができます。

Sudo rm -r/home /username

上記のコマンドは注意して使用してください!

変更するには

ユーザーのユーザー名を変更するには:

usermod -l new_usernameold_username

ユーザーのパスワードを変更するには:

Sudo passwd username

ユーザーのシェルを変更するには:

Sudo chsh username

ユーザーの詳細(実名など)を変更するには:

Sudo chfn username

ユーザーをSudoグループに追加するには:

adduser username Sudo

または

usermod -aG Sudo username

そしてもちろん、man adduserman useraddman userdel...なども参照してください。

1136
Radu Rădeanu

押すだけ Ctrl+Alt+T キーボードでターミナルを開きます。開いたら、以下のコマンドを実行します:

cat /etc/passwd

OR

less /etc/passwd
more /etc/passwd

また、awkを使用することもできます。awk

awk -F':' '{ print $1}' /etc/passwd
86
Mitch

この種の情報を取得する最も簡単な方法はgetentです- getentコマンドのマンページを参照してください Manpage icon 。このコマンドはcat /etc/passwdと同じ出力を提供しますが、OSのいくつかの要素のリストを提供するため、覚えておくと便利です。

入力したすべてのユーザーのリストを取得するには(ユーザーが/etc/passwdにリストされているため)

getent passwd

ユーザーnewuserをシステムに追加するには、次のように入力します。

Sudo adduser newuser

すべてのデフォルト設定が適用されたユーザーを作成します。

ボーナス:ユーザー(たとえばanyuser)をグループ(たとえばcdrom)に追加するには

Sudo adduser anyuser cdrom

ユーザーを削除します(たとえばobsolete

Sudo deluser obsolete

彼のホームディレクトリ/メールも削除したい場合は、

Sudo deluser --remove-home obsolete

そして

Sudo deluser --remove-all-files obsolete

システム全体でこのユーザーが所有するすべてのファイルおよびを削除します。

63
guntbert

compgenGNU bash built-in も使用できます。

compgen -u

すべてのユーザーをリストします。

42
Ravexina

これにより、ほとんどの通常の状況で、すべての通常の(システムではなく、奇妙ではないなどの)ユーザーが取得されます。

awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd

これは以下によって動作します:

  • /etc/passwdから読み込む
  • :を区切り文字として使用
  • 3番目のフィールド(ユーザーID番号)が1000より大きく、65534ではない場合、最初のフィールド(ユーザーのユーザー名)が出力されます。

これは、多くのLinuxシステムでは、1000を超えるユーザー名が非特権(通常のユーザー)ユーザー用に予約されているためです。これに関するいくつかの情報 ここ

ユーザーID(UID)は、Unixライクなオペレーティングシステムによって各ユーザーに割り当てられる一意の正の整数です。各ユーザーは、UIDによってシステムに対して識別され、ユーザー名は一般に人間のインターフェースとしてのみ使用されます。

UIDは、対応するユーザー名およびその他のユーザー固有の情報とともに、/ etc/passwdファイルに保存されます...

3番目のフィールドにはUIDが含まれ、4番目のフィールドにはグループID(GID)が含まれます。これはデフォルトではすべての一般ユーザーのUIDと同じです。

Linuxカーネル2.4以降では、UIDは0〜4,294,967,296の値を表すことができる符号なし32ビット整数です。ただし、16ビットUIDのみを収容できる古いカーネルまたはファイルシステムを使用するシステムとの互換性を維持するために、最大65,534の値のみを使用することをお勧めします。

UID 0には特別な役割があります:常にルートアカウント(つまり、全能管理ユーザー)です。このアカウントでユーザー名を変更し、同じUIDで追加のアカウントを作成できますが、セキュリティの観点からはどちらのアクションも賢明ではありません。

UID 65534は通常、通常の(つまり、特権のない)ユーザーとは対照的に、誰もシステム特権のないユーザーのために予約されています。このUIDは、FTP(ファイル転送プロトコル)またはHTTP(ハイパーテキスト転送プロトコル)を介してシステムにリモートでアクセスする個人によく使用されます。

UID 1から99は、従来、wheel、daemon、lp、operator、news、mailなどの特別なシステムユーザー(疑似ユーザーとも呼ばれます)用に予約されています。これらのユーザーは、完全なルート権限を必要としない管理者です。一部の管理タスクのため、通常のユーザーに与えられた権限よりも多くの権限が必要です。

一部のLinuxディストリビューション(バージョンなど)は、非特権ユーザーのUIDを100から開始します。RedHatなどの他のディストリビューションは500から開始し、Debianなどの他のディストリビューションは1000から開始します。組織内のネットワークで複数のディストリビューションが使用されている場合、介入が必要になることがあります。

また、1000〜9999などのローカルユーザー用のUIDのブロックと、10000〜65534などのリモートユーザー(ネットワーク上の他のユーザー)用の別のブロックを予約すると便利な場合があります。スキームに基づいて、それを遵守します。

特定のタイプのユーザーに番号のブロックを予約するこのプラクティスの利点の1つは、不審なユーザーアクティビティについてシステムログを検索する方が便利になることです。

一般的な考えに反して、UIDフィールドの各エントリが一意である必要はありません。ただし、一意でないUIDはセキュリティ上の問題を引き起こす可能性があるため、UIDは組織全体で一意に保つ必要があります。同様に、以前のユーザーからのUIDのリサイクルは可能な限り避ける必要があります。

27
Wilf

リストログインできるすべてのユーザーの(bin、deamon、mail、sysなどのシステムユーザーはなし)

awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow

追加新規ユーザー

Sudo adduser new_username

または

Sudo useradd new_username

削除 /ユーザー名を削除

Sudo userdel username

ホームディレクトリを削除する場合(デフォルトはディレクトリ/ home/username)

Sudo deluser --remove-home username

または

Sudo rm -r /path/to/user_home_dir

このユーザーからシステムからすべてのファイルを削除する場合(ホームディレクトリだけでなく)

Sudo deluser --remove-all-files
17
Donovan Vesters

[OK]をここでこれをソートするのに役立つトリックです。ユーザーがユーザーを入力し、Tabキーを2回押すと、端末に自動補完機能があり、最初の4文字としてユーザーに存在するすべてのコマンドがリストされます。

user (tab tab)

可能なオプションとして私に与えますuseradd userdel usermod users users-admin
コマンドgoogle itをもっと知りたい場合、またはman man useradd gives useradd-type new user or update default new user information ... ...

ユーザーを一覧表示するには、Mitchが言ったことを確認する必要があります。

Bashでのタブ補完が好きになってくれることを願っています。

8
user239243

マシンの/ home-folderにホームディレクトリがあるユーザーを見つけるには、次のコマンドを実行します

cd /home
ls 

その後、サーバーにログインする権限を持つユーザーを確認できます。ユーザーのファイルを調べるには、rootユーザーである必要があります。

6
anvesh