FreeBSD是个多用户环境;一个系统管理员主要的工作之一就是建立用户账号并向用户提供一个安全的工作环境。要有效地完成此工作需要在建立任何用户之前作一些预期规划。
即使如果你是个人FreeBSD系统的唯一用户,仍需要至少建立一个用户账号来完成常规的工作。记住,只在工作需要超级用户权限的时候才用超级用户账号。
在你的FreeBSD系统上象一位系统管理员那样练习规划是个好主意,因为你可以增长管理“实际”生产环境的基本技术。
当你建立一个用户时,在后台会发生很多事情:更新一些数据库,建立邮件目录以及用户的宿主目录。当建立用户时,你必须提供一定数量的信息,包括用户名和口令。在这篇文章中,我打算集中于用户策略以及建立用户账号上。
你建立的每个用户账号都必须有一个在FreeBSD系统上唯一的名字。在较小的环境这很容易做到,但如果你必须建立一打,成百甚至上千个用户就稍微要困难一点了。为了有助于确保唯一性,你应该有一套用户命名策略。如果没有适当的策略,你需要建立一套命名方案,紧记一些用于用户名的限制。首先,用户名应被限制在16个字符之内,而一些协议,如NIS,需要用户名少于8个字符。其次,用户名不能以连字符“-”起首。再次,你应该避免使用大写字母和句点,因为这些会搞乱一些邮件程序。
在较小环境中的策略样例可以用用户的名和姓首字母来建立用户名。你可能要对此稍加修改以避免冲突。例如,如果你需要为Mike Smith和Mike Spencer建立账号,可以建立“mikes”和“michaels”,或“mikesm”和“mikesp”。
其它的策略可以用用户的姓和名首字母并作适当的修改来建立用户名以避免冲突。如果你需要为Mark Smith和Michelle Smith建立账号,可以建立“smithma”和“smithmi”。
在稍大的环境中,你可能要用较多字符分别表示名和姓。例如,如果命名策略是名部分的首四个字符后跟姓部分的首四个字符,那么Mark Smith应该是“marksmit”,而Michelle Smith应该是“michsmit”。你仍需要有一份后备计划用于那些姓和名都少于指定的字符数量。例如,如果我需要用上述策略为My Lee建立一个账号,我应该建立“my_lee”。
除非你处于一个相当小的环境之中,避免非说明性的昵称,如我用在自己系统上的“biko”和“genisis”是比较明智的。
总而言之,一个好的用户命名策略表明了对用户名的限制,而且是避免命令冲突的一个应急方法。
一旦你决定了一套命令方案,你就可以用adduser工具建立用户账号了。这个工具有一个配置文件/etc/adduser.conf,它还会读取一个讯息文件/etc/adduser.message。这些文件在你首次使用adduser工具前还没有被创建。下面跟我一起建立一个用户;我会使用v或verbose开关,所以我们将看到所有可能的提示信息。你会看到adduser首先创建它的配置文件,然后在建立用户时把它作为一个模板。
adduser -v
You are not root!
哦。看起来这是个需要root权限的管理工作。让我们再试一次:
su
Password:
adduser -v
/etc/adduser.conf: No such file or directory
可以看到这是我首次在该系统上使用“adduser”工具;它还没有一个配置文件。
Use option "-silent"
if you don‘t want to see all warnings and questions.
Check /etc/shells
Check /etc/master.passwd
Check /etc/group
Enter your default shell: bash csh date no sh tcsh [sh]: tcsh
adduser读取一个含有系统上安装的所有命令解释器的路径的文件/etc/shells;然后显示用户可以使用的解释器。注意,向用户提供的缺省解释器是Bourne shell (sh),但我把它改为tcsh。
Your default shell is: tcsh -> /bin/tcsh
Enter your default HOME partition: [/home]:
Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:
当我们建完用户并在接受了从/usr/share/skel目录拷贝点文件看到的信息之后,可以去看一下那个目录里的内容。
Send message from file: /etc/adduser.message no
[/etc/adduser.message]:
Create "/etc/adduser.message"? (y/n) [y]:
Use passwords (y/n) [y]:
Write your configuration to /etc/adduser.conf? (y/n) [y]:
可以看到adduser在/etc目录下建立了adduser.message和adduser.conf文件。现在准备建立我们的用户:
Ok, let‘s go.
Don‘t worry about mistakes.
I will give you the chance later to correct any input.
Enter username [a-z0-9_-]: dlavigne
Enter full name []: Dru Lavigne
Enter shell bash csh date no sh tcsh [tcsh]:
Enter home directory (full path) [/home/dlavigne]:
Uid [1000]:
Enter login class: default []:
Login group dlavigne [dlavigne]:
Login group is "dlavigne".
Invite dlavigne into other groups: guest no
[no]:
Enter password []:
Enter password again []:
Name: dlavigne
Password: ****
Fullname: Dru Lavigne
Uid: 1000
Gid: 1000 (dlavigne)
Class:
Groups: dlavigne
HOME: /home/dlavigne
Shell: /bin/tcsh
OK? (y/n) [y]:
Added user "dlavigne"
Send message to "dlavigne" and: no root second_mail_address
[no]:
Dru Lavigne,
your account "dlavigne" was created.
Have fun!
See also chpass(1), finger(1), passwd(1)
Add anything to default message (y/n) [n]:
Send message (y/n) [y]:
Copy files from /usr/share/skel to /home/dlavigne
Add another user? (y/n) [y]: n
Goodbye!
现在我已经顺利地建立了一个用户,我将离开超级用户账号。让我们以新用户身份登录,看一下他们有些什么东东并描述一下这里的内容:
login: dlavigne
Password:
pwd
/usr/home/dlavigne
ls -la
total 12
drwxr-xr-x 2 dlavigne dlavigne 512 Dec 30 11:21 ./
drwxr-xr-x 4 root wheel 512 Dec 30 10:44 ../
-rw-r--r-- 1 dlavigne dlavigne 628 Dec 30 10:44 .cshrc
-rw-r--r-- 1 dlavigne dlavigne 299 Dec 30 10:44 .login
-rw-r--r-- 1 dlavigne dlavigne 160 Dec 30 10:44 .login_conf
-rw------- 1 dlavigne dlavigne 371 Dec 30 10:44 .mail_aliases
-rw-r--r-- 1 dlavigne dlavigne 331 Dec 30 10:44 .mailrc
-rw-r--r-- 1 dlavigne dlavigne 722 Dec 30 10:44 .profile
-rw------- 1 dlavigne dlavigne 276 Dec 30 10:44 .rhosts
-rw-r--r-- 1 dlavigne dlavigne 852 Dec 30 10:44 .shrc
你可以看到为用户建立了一个宿主目录,里面包含很多以点起首的文件。记得我们使用adduser工具时提到的点文件目录吗?让我们现在来看一下:
ls -l /usr/share/skel
total 10
drwxr-xr-x 2 root wheel 512 Dec 8 11:53 ./
drwxr-xr-x 26 root wheel 512 Nov 20 08:11 ../
-rw-r--r-- 1 root wheel 628 Nov 20 07:01 dot.cshrc
-rw-r--r-- 1 root wheel 299 Nov 20 07:01 dot.login
-rw-r--r-- 1 root wheel 160 Nov 20 07:01 dot.login_conf
-rw------- 1 root wheel 371 Nov 20 07:01 dot.mail_aliases
-rw-r--r-- 1 root wheel 331 Nov 20 07:01 dot.mailrc
-rw-r--r-- 1 root wheel 722 Nov 20 07:01 dot.profile
-rw------- 1 root wheel 276 Nov 20 07:01 dot.rhosts
-rw-r--r-- 1 root wheel 852 Nov 20 07:01 dot.shrc
可以看到在我们新用户的宿主目录建立的八个文件都是从这个目录中拷贝的模板文件。另外也可以看到只有超级用户才可以编辑skel目录里的文件。例如,如果你希望所有用户都得到定制过的命令解释器提示符,那么超级用户可以修改usr/share/skel/dot.cshrc文件,此文件会在建立账号时拷贝到所有用户的宿主目录中。还有,超级用户也可以在该目录中放入他希望用户得到的任何其它点文件;例如你可以为用户建立定制好的.xinitrc文件。
现在让我们看一下adduser工具建立的/etc/adduser.message文件:
more /etc/adduser.message
#
# Message file for adduser(8)
# comment: "#"
# default variables: $name, $fullname, $password
# other variables: see /etc/adduser.conf after
# line "## DO NOT DELETE THIS LINE!"
#
$fullname,
your account "$name" was created.
Have fun!
See also chpass(1), finger(1), passwd(1)
分页: [1] [2]
- 上一篇:flash制作动火焰动画
- 下一篇:分析在FreeBSD中添加用户操作过程