UNIX 用户管理
在Unix系统上的账户有三种类型:
-
Root 账号: 这也被称为超级用户,并有完整的和不受约束的控制系统。一个超级用户可以运行任何命令,没有任何限制。该用户应承担作为一个系统管理员。
-
System 账号: 系统帐户是那些需要特定系统组件,例如电子邮件帐户和sshd的账户的操作。这些账户通常需要在您的系统上的一些特定功能,任何修改系统可能会受到不好的影响。
-
User 账号: 用户帐户提供交互式访问系统的用户和用户组。一般使用者通常分配给这些帐户,通常有有限的访问关键系统文件和目录。
UNIX支持组帐户的概念逻辑分组多个账户。每个帐户将任何组帐户的一部分。 Unix群组中起着重要的作用,在处理文件的权限和流程管理。
管理用户和组:
有三个主要的用户管理文件:
-
/etc/passwd: 保持用户帐户和密码信息。这个文件包含了大多数的Unix系统上的账户信息。
-
/etc/shadow: 相应的帐户保存加密口令。并非所有的系统支持此文件。
-
/etc/group: 此文件包含每个帐户的组信息。
-
/etc/gshadow: 此文件包含安全组的帐户信息。
检查上述所有文件使用cat命令。
以下是大多数Unix系统上可用来创建和管理帐户和组的命令:
命令 | 描述 |
---|---|
useradd | Adds accounts to the system. |
usermod | Modifies account attributes. |
userdel | Deletes accounts from the system. |
groupadd | Adds groups to the system. |
groupmod | Modifies group attributes. |
groupdel | Removes groups from the system. |
您可以使用联机帮助帮助这里提到的每个命令的语法检查完成。
创建一个组
您需要创建组,然后才能再创建任何帐户,系统中必须使用现有组。你将不得不在 /etc/groups文件中列出的所有组。
所有默认组将系统帐户的特定群体,它是不推荐使用普通帐户。所以语法来创建一个新的帐户:
groupadd [-g gid [-o]] [-r] [-f] groupname
下面是详细的参数:
选项 | 描述 |
---|---|
-g GID | The numerical value of the group's ID. |
-o | This option permits to add group with non-unique GID |
-r | This flag instructs groupadd to add a system account |
-f | This option causes to just exit with success status if the specified group already exists. With -g, if specified GID already exists, other (unique) GID is chosen |
groupname | Actaul group name to be created. |
如果你不指定任何参数,那么系统将使用默认值。
以下示例将创建开发组的默认值,这是非常可以接受的大多数管理员。
$ groupadd developers
修改组:
要修改组,使用groupmod语法:
$ groupmod -n new_modified_group_name old_group_name
要改变developers_2 组的名称到开发组,输入:
$ groupmod -n developer developer_2
这里显示如何改变GID为545:
$ groupmod -g 545 developer
删除组:
要删除现有的组,所有你需要的是一个命令groupdel命令和组名。要删除的 financial 组,该命令是:
$ groupdel developer
这将删除组,没有任何与该组相关的文件。这些文件是由他们的所有者仍然可以访问。
创建一个帐户
让我们来看看如何在你的Unix系统上创建一个新的帐户。以下是语法来创建用户帐户:
useradd -d homedir -g groupname -m -s shell -u userid accountname
下面是详细的参数:
Option | 描述 |
---|---|
-d homedir | Specifies home directory for the account. |
-g groupname | Specifies a group account for this account. |
-m | Creates the home directory if it doesn't exist. |
-s shell | Specifies the default shell for this account. |
-u userid | You can specify a user id for this account. |
accountname | Actual account name to be created |
如果你不指定任何参数,那么系统将使用默认值。useradd命令修改了 /etc/passwd, /etc/shadow, 和 /etc/group文件,并创建一个主目录。
下面的例子将创建一个帐户 mcmohd 其主目录设置到 /home/mcmohd 和开发组。该用户将有Korn Shell的分配给它。
$ useradd -d /home/mcmohd -g developers -s /bin/ksh mcmohd
发出上述命令前,请确保你已经有开发组使用groupadd的命令创建。
一旦创建一个帐户,你可以设置其密码,使用passwd命令如下:
$ passwd mcmohd20 Changing password for user mcmohd20. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
当你输入 passwd accountname,它给你提供的密码你是超级用户,否则,你就可以改变你的密码使用相同的命令,但没有指定帐户名选项来改变。
修改帐户:
通过usermod命令使您可以更改现有的帐户,在命令行。它使用相同的参数,useradd命令,加上-l参数,它允许您更改帐户名。
举例来说,,更改帐户名称 mcmohd 到 mcmohd20,并相应地改变主目录,你会需要发出以下命令:
$ usermod -d /home/mcmohd20 -m -l mcmohd mcmohd20
删除一个帐户:
userdel命令可以用来删除现有用户。这是一个非常危险的命令,如果不小心使用。
只有一个参数或选项可用于命令:.r,删除帐户的主目录和邮件文件。
例如,删除帐户mcmohd20,您将需要发出以下命令:
$ userdel -r mcmohd20
如果你想保持她的主目录备份的目的,省略-r选项。您可以删除的主目录,在以后的时间。