译者:

也许你的 Lniux 用户并不是愤怒的公牛,但是当涉及管理他们的账户的时候,能让他们一直开心也是一种挑战。监控他们当前正在访问的东西,追踪他们他们遇到问题时的解决方案,并且保证能把他们在使用系统时出现的重要变动记录下来。这里有一些方法和工具可以使这份工作轻松一点。

配置账户

添加和移除账户是管理用户中最简单的一项,但是这里面仍然有很多需要考虑的选项。无论你是用桌面工具或是命令行选项,这都是一个非常自动化的过程。你可以使用命令添加一个新用户,像是 jdoe,这同时会触发一系列的事情。使用下一个可用的 UID 可以创建 John 的账户,或许还会被许多用以配置账户的文件所填充。当你运行 命令加一个新的用户名的时候,它将会提示一些额外的信息,同时解释这是在干什么。

$ sudo jdoe

user ‘jdoe’ …

new group `jdoe’ (1001) …

new user `jdoe’ (1001) with group `jdoe’ …

home `/home/jdoe’ …

files from `/etc/skel’ …

Enter new UNIX :

new UNIX :

:

the user for jdoe

Enter the new value, or press ENTER for the

Full Name []: John Doe

Room []:

Work Phone []:

Home Phone []:

Other []:

Is the ? [Y/n] Y

像你看到的那样, 将添加用户的信息(到 /etc/ 和 /etc/ 文件中),创建新的家目录,并用 /etc/skel 里设置的文件填充家目录,提示你分配初始密码和认定信息,然后确认这些信息都是正确的,如果你在最后的提示 “Is the ” 处的答案是 “n”,它将回溯你之前所有的回答,允许修改任何你想要修改的地方。

创建好一个用户后,你可能会想要确认一下它是否是你期望的样子,更好的方法是确保在添加第一个帐户之前,“自动”选择与您想要查看的内容相匹配。默认有默认的好处,它对于你想知道他们定义在哪里有所用处,以防你想作出一些变动 —— 例如,你不想家目录在 /home 里,你不想用户 UID 从 1000 开始,或是你不想家目录下的文件被系统上的每个人都可读。

如何工作的一些细节设置在 /etc/.conf 文件里。这个文件包含的一些设置决定了一个新的账户如何配置,以及它之后的样子。注意,注释和空白行将会在输出中被忽略,因此我们可以更加集中注意在设置上面。

$ cat /etc/.conf | grep -v “^#” | grep -v “^$”

=/bin/bash

DHOME=/home

=no

=no

SKEL=/etc/skel

=100

=999

=100

=999

=1000

=29999

=1000

=29999

=yes

=100

=0755

=no

=””

=”dpkg-(old|new|dist|save)”

可以看到,我们有了一个默认的 shell(),UID()的开始数值,家目录(DHOME)的位置,以及启动文件(SKEL)的来源位置。这个文件也会指定分配给家目录()的权限

其中 是最重要的设置,它决定了每个家目录被使用的权限。这个设置分配给用户创建的目录权限是 755,家目录的权限将会设置为 rwxr-xr-x。用户可以读其他用户的文件,但是不能修改和移除他们。如果你想要更多的限制,你可以更改这个设置为 750(用户组外的任何人都不可访问)甚至是 700(除用户自己外的人都不可访问)。

任何用户账号在创建之前都可以进行手动修改。例如,你可以编辑 /etc/ 或者修改家目录的权限,开始在新服务器上添加用户之前配置 /etc/.conf 可以确保一定的一致性,从长远来看可以节省时间和避免一些麻烦。

/etc/.conf 的修改将会在之后创建的用户上生效。如果你想以不同的方式设置某个特定账户,除了用户名之外,你还可以选择使用 命令提供账户配置选项。或许你想为某些账户分配不同的 shell,请求特殊的 UID,完全禁用登录。 的帮助页将会为你显示一些配置个人账户的选择。

[] [–home DIR] [–shell SHELL] [–no–home]

[–uid ID] [– ID] [– ID] [– GROUP | –gid ID]

[—] [—login] [–gecos GECOS]

[–] [—home] user

每个 Linux 系统现在都会默认把每个用户放入对应的组中。作为一个管理员,你可能会选择以不同的方式去做事。你也许会发现把用户放在一个共享组中可以让你的站点工作的更好,这时,选择使用 的 –gid 选项去选择一个特定的组。当然,用户总是许多组的成员,因此也有一些选项去管理主要和次要的组。

处理用户密码

一直以来,知道其他人的密码都是一个不好的念头,在设置账户时,管理员通常使用一个临时的密码,然后在用户第一次登录时会运行一条命令强制他修改密码。这里是一个例子:

$ sudo chage -d 0 jdoe

当用户第一次登录的时候,会看到像这样的事情:

: Your has .

You must your now and login again!

for jdoe.

() UNIX :

添加用户到副组

添加用户到副组中,你可能会用如下所示的 命令 —— 添加用户到组中并确认已经做出变动。

$ sudo -a -G sudo jdoe

$ sudo grep sudo /etc/group

sudo:x:27:shs,jdoe

记住在一些组,像是 sudo 或者 wheel 组中,意味着包含特权,一定要特别注意这一点。

移除用户,添加组等

Linux 系统也提供了命令去移除账户、添加新的组、移除组等。例如, 命令,将会从 /etc/ 和 /etc/ 中移除用户登录入口,但是会完整保留他的家目录,除非你添加了 —home 或者 —all-files 选项。 命令会添加一个组,按目前组的次序给他下一个 ID(在用户组范围内),除非你使用 –gid 选项指定 ID。

$ sudo –gid=131

group `’ (GID 131) …

Done.

管理特权账户

一些 Linux 系统中有一个 wheel 组,它给组中成员赋予了像 root 一样运行命令的能力。在这种情况下,/etc/ 将会引用该组。在 系统中,这个组被叫做 sudo,但是以相同的方式工作,你在 /etc/ 中可以看到像这样的引用:

%sudo ALL=(ALL:ALL) ALL

这个基础的设定意味着,任何在 wheel 或者 sudo 组中的成员,只要在他们运行的命令之前添加 sudo,就可以以 root 的权限去运行命令。

你可以向 文件中添加更多有限的特权 —— 也许给特定用户运行一两个 root 的命令。如果这样做,您还应定期查看 /etc/ 文件以评估用户拥有的权限,以及仍然需要提供的权限。

在下面显示的命令中,我们看到在 /etc/ 中匹配到的行。在这个文件中最有趣的行是,包含能使用 sudo 运行命令的路径设置,以及两个允许通过 sudo 运行命令的组。像刚才提到的那样,单个用户可以通过包含在 文件中来获得权限,但是更有实际意义的方法是通过组成员来定义各自的权限。

# cat /etc/ | grep -v “^#” | grep -v “^$”

=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin”

root ALL=(ALL:ALL) ALL

%admin ALL=(ALL) ALL

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需109元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666