如何管理系统的用户
将用户添加到系统
如果您是系统管理员,无论环境如何(大中小型组织),您的任务之一就是将用户添加到系统中。这意味着在您的网络中的一台或多台计算机上为用户提供一个用户帐户。您必须处理的主要问题是根据您自己的或公司的标准来决定用户有权享有什么特权。
首先,我们来看看添加用户到系统的主要方法。现在,大多数主要的发行版都有工具可以用图形和无痛的方式做到这一点。如果您只是想添加用户并赋予其默认权限,则可以使用这些工具。一些发行版有一个简单的命令行工具来添加用户,命名,足够适当,adduser。如果你输入命令
码:
adduser
系统会提示您输入用户的登录名。使用名字和姓氏的第一个字母是标准做法。但是,只是因为这是标准的做法,并不意味着你必须这样做。如果你在一个小型组织工作,随时可以使用
码:
adduser susan
添加一个名为Susan Johnson的用户。这将是更有意义的使用
码:
adduser sjohnson
考虑到你的公司可能在某个时候雇用另外一个叫Susan的人。其他的事情要考虑的是:
你不应该在名称中包含空格
避免用户名中的连字符和下划线
尽量不要使用过长的名字(如果你有一个名为Ralph Inladomakrempandipadic的用户,那么你可能不得不即兴好莱尔拉尔夫!)
更多的控制
如果您有兴趣对如何创建用户进行更严格的控制,则应使用标准命令行工具useradd。让我们来看看可用的选项。首先,如果我们运行以下命令:
码:
useradd -D
您将看到默认情况下用户如何添加到系统中。
码:
GROUP=100HOME=/homeINACTIVE=-1EXPIRE=SHELL=/bin/bashSKEL=/etc/skel
我们来仔细分析一下。在这个例子中,任何用户都将被添加到一个名为users的组中。
码:
GROUP = 100
如果您查看/ etc / group(列出系统上组的名称),则会发现数字100分配给用户。这是一个默认的排序组,包括所有用户。
码:
HOME=/home
如您所知,添加到系统的用户将被赋予一个目录来保存他或她的文件。这是默认情况下在/ home中创建的。
码:
INACTIVE=-1
是指系统在您的帐户到期时将您锁定的天数。正如你在这里看到的,你很快就被锁定了!
码:
EXPIRE=
指的是您的账户应该到期的日期。在我们的例子中,没有日期。这对正式员工来说可能是好的,但是如果您聘请了一些外部顾问为您工作,您可能希望他或她的帐户在业务结束时到期。处理临时工(特别是解雇员工)的最佳方式是彻底删除该帐户。但是,即使是最好的管理员也经常是过度工作,可能会忘记,所以设置到期日期将确保帐户不能使用。
码:
SHELL=/bin/bash
指的是用户将不得不在系统上运行命令的shell。Bash或Bourne Again Shell是Linux发行版的标准版本。这并不意味着你作为系统管理员不能在系统上安装其他的shell,并将它们设置为默认值(例如Korn shell)。作为管理员,最后一项对你非常重要。
码:
SKEL=/etc/skel
意味着在创建帐户时位于/ etc / skel中的文件将被复制到用户目录。
您可能需要将文件添加到此目录,或者您可能需要对其进行更改。例如,您可能需要添加几行到.bashrc以使用户更安全。
码:
alias cp='cp -p -i'alias rm='rm -i'alias mv='mv -i'
或者你可以添加这个给你的用户一个更好看的登录提示
码:
PS1='[?33[45m][?33[1;33m][@]u@h:W >[?33[0m] '
如果您不喜欢这些颜色,请随意更改45米和33米的值。不是每个人都成洋红色和黄色!
现在您已经准备好以更多的选择标准将用户添加到系统中。useradd的“man”页面是Linux命令更好的一个。在这里,您可以看到所有可能的选项,并对每个人做了什么解释。我们来看一个使用一些最常见选项的例子。
码:
useradd -c "William Shakespeare - AKA, The Bard" -d /home/wshakespeare -m -k /etc/skel -g 100 -s /bin/bash wshakespeare
让我们看看我们做了什么。首先,我们添加了William Shakespeare作为我们系统的用户。第一个选项-c是一个简短的注释,它必须在引号之间,并帮助在/ etc / passwd文件中标识我们的用户。第二个选项,-d是你想要创建个人目录的地方。-m选项创建主目录,-k选项将文件复制到以下目录(在本例中为/ etc / skel)。-g选项将用户放在编号如下的组中。-s选项为用户提供了一个shell(在我们的例子中是Bash)。最后,用户将使用的名称。
你可能已经注意到了,我们没有使用-p(密码)选项。目前,莎士比亚没有密码,因此无法登录。这有点复杂。现在大多数Linux发行版都使用影子密码系统。这些都是加密的,以便正常的用户不能在系统中查看密码。我们使用useradd的问题是,它需要一个已经加密的密码才能正常工作。假设我想给莎士比亚密码“h4ml3t”。如果我添加了-p h4ml3t,系统会拒绝他的登录,因为它没有被加密。如果您查看存储这些加密密码的/ etc / shadow文件,您可以在用户的登录名旁边找到类似这样的内容:
码:
Q37spqpXAsl1Y
用户jsmith可能有密码“mrT1bbs”,但它会显示为类似的东西
码:
jsmith:F54spqpRAsl1X:12043:0:99999:7:::
在/ etc / shadow中。这是因为密码已经被创建为md5散列,这是一种加密算法。所以,这里的底线是你有两个选择。只需要在这里和那里添加帐户的管理员可以使用上面的选项,减去-p然后运行
码:
passwd user
并提供密码。passwd会自动创建md5哈希。如果您发现自己需要同时创建多个用户,则可能需要查看一些预先创建这些哈希的工具,然后可以为它们提供-p选项。
删除用户
作为管理员,您还需要删除用户。人们离开并继续其他事情。他们短暂来临,需要临时账户。当帐号不再使用时,帐号需要被删除。从安全的角度来看,这是最重要的。我们都听过一些不满的前雇员重新登录帐户的故事,并利用这个系统来嘲笑他们的前雇主玩弄恶作剧或者实际上试图造成严重的损失。
同样,正如我们之前所说的,您的Linux发行版选择可能有工具可以做到这一点。有些人通过删除用户主目录(以及所有的文件!)和账户来简化操作。然而,所有发行版都附带的标准工具就是这样的:它只是像这样运行:
码:
userdel wshakespeare
在那里你用你想删除的用户名替换wshakespeare。
在这种情况下,我们删除了William Shakespeare的用户帐户,但是删除了他的主目录和文件。为了摆脱旧的任何痕迹,那么你会使用-r选项:
码:
userdel -r wshakespeare
这将删除一切,包括他的电子邮件。但是,我们可能不想这样做。由于合同义务,许多人离职,但工作仍然是公司的财产。在这种情况下,我们显然希望保留用户的文件,直到他们可以被查看,复制到另一个用户的帐户或存储。所以要小心-r选项。
权限
如您所知,Linux计算机上的所有内容都是一个文件。正如我们在上一节中所解释的那样,硬件也被表示为一系列文件(例如,IDE硬盘是/ dev / hda,调制解调器可能是/ dev / ttyS1)。看到一切都是文件,这些文件必须有一系列的权限分配给他们。这些权限控制给定文件的使用和访问权限。具体来说,它们决定一个文件是否可以被读取,写入(即修改,删除),或者在二进制程序的情况下被执行。这些权限必须严格执行,否则可能对系统造成巨大的损害。
正如我们在第一个课程中看到的,您可以键入以下内容来查看权限信息:
码:
ls -l todo_list
比方说,你刚刚用你最喜欢的文本编辑器写了一个待办事项列表。很可能在一个正常的系统上,你将会创建这个被称为“简单”权限的文件。上一个命令的输出如下所示:
码:
-rw-r-r- 1 bob users 155 Mar 26 12:33 todo_list
第一组权限(rw)适用于文件的所有者bob。这些是读写权限。正如我们在第二组权限(r)中看到的,该文件所属的组是用户可以读取的。第三套是指别人。任何有权访问系统和bob主目录的人都可以读取(r)该文件。
我们来看另一个例子。比方说,我想创建一个Bash shell脚本来将我的工作备份到一个名为/ project的目录中。理想情况下,我可以将其作为“cron”工作来运行。然后我会使脚本可执行。如果我们查看这个文件的权限,它会看起来像这样。
码:
-rwxr-r- 1 bob users 95 Mar 26 12:38 backup_work
正如你所看到的,有一个“x”被添加到文件所有者的权限集合中。
分配权限
那么如何给文件提供你想要的权限呢?那么,作为一个用户,你被限制只允许你拥有的那些文件。作为根用户,您可以授予系统上任何文件的权限。
我们以上述两个文件为例。首先,如果你想todo_list是保密的,可以这么说,你可以删除他人的读取权限。有两种方法可以做到这一点。两者都使用命令chmod
码:
chmod o-r todo_list
这是更直接的做法。正如你所看到的,我们已经为文件设置了其他(o)减( - )read(r)。
我们也可以使用数字方案。在Linux系统上,权限被分配了数字值。读取权限的值为4,写入权限的值为2,执行权限的值为1.因此,如果我想拒绝其他人读取我的待办事项列表的权限,那么我也可以键入:
码:
chmod 640 todo_list
如果你使用-c选项,你也可以简单地解释你做了什么。
码:
chmod -c 640 todo_listmode of `todo_list' changed to 0640 (rw-r---)
首先,正如你在输出中看到的,在640之前有一个0。这是指目录权限,在这里不适用。我们怎么得到640?那么,阅读(4)+写(2)为所有者和阅读(4)为组加上没有权限(0)为他人等于640.
让我们再看看另一个文件来备份我们的工作。我们会为所有者添加执行权限。一种方法是:
码:
chmod u+x backup_work
从字面上增加(u + x)权限来执行所有者。我们也可以使用我们的号码系统:
码:
chmod 744 backup_work
并为所有者分配执行权限。也就是说,读取(4)+写入(2)+执行(1)等于(7)加上读取(4)为组和读取(4)为他人。
目录权限
目录可以像文件一样分配权限。如果你看看Linux中的根目录,你会发现大部分目录都有这样的权限:drwxr-xr-x。字母d是将其区分为目录。其余的就像正常的文件权限。通常有一个例外,它是/ tmp目录。这是/ tmp目录的普通权限:drwxrwxrwt。很多程序需要在这个目录下使用故事临时文件(因此,/ tmp),所以有权限写入组和其他人。最后的字母t在这里也是一个非常重要的区别。这被称为粘性位。这意味着即使有写入权限,在那里创建的文件也不能被删除。这是出于安全原因而完成的。在正常情况下,如果我有权写入一个目录,那么我可以逻辑地删除那里的任何文件,不管我是否创建了它。你不能用粘性的位来做到这一点。除非你创建了这个文件,否则你不能删除它。也就是说,任何人都可以用t创建一个目录中的文件,但只有目录和文件的所有者才能删除它。
要测试这个,请执行以下操作。创建两个目录;一个叫“杰克”,另一个叫“吉尔”。设置“jack”的粘性位,如下所示:
chmod 1777 jack
现在进入该目录并创建一个文件:
码:
touch pail_of_water
现在为每个人设置“jill”的写入权限,而不需要粘性位
码:
chmod 0777 jill
并创建另一个文件:
码:
touch up_the_hill
如果您创建了另一个用户帐户(或者您现在可以使用上一节中的知识创建一个帐户),则可以以其他用户身份登录,然后输入目录“jill”,然后移除文件up_the_hill。但现在,进入目录'杰克',然后:
码:
rm pail_of_water
你得到谚语的门砰地关上你的脸。
rm:不能取消连接`pail_of_water':不允许操作
那个文件在这个目录下是“卡住的”,直到所有者决定删除它为止,因此术语粘滞。如果你已经创建了一些目录给其他人写信(比如你正在与其他人一起工作),那么设置sticky位总是一个好主意。那样,只有你有责任犯错。
硬和符号链接
存在被称为硬链接和符号链接的文件类型。创建这些是为了更方便地访问某些文件。为了使用一个真实世界的例子,我创建了一个符号链接到我的Mozilla书签文件,这样我可以打开它并访问我最喜欢和最常用的页面,当我使用其他浏览器。Mozilla将其书签放在一个HTML格式的文件中,并放在一个深深而又隐秘的子目录中。这是使用符号链接的理想机会。我无法改变Mozilla放置书签文件的位置,但是我可以创建另一个文件,这个文件是实际书签文件的链接,但是更容易理解。
码:
ln -s .mozilla / bob / k4til3zu.slt / bookmarks.html mozilla_bookmarks.html
-s选项代表符号。符号链接的权限如下所示:
码:
lrwxrwxrwx 1 bob users 41 Dec 22 16:29 mozilla_bookmarks.html - > .mozilla / bob / k4til3zu.slt / bookmarks.html
正如你所看到的,开头有一个“l”,表示这是一个符号链接。另外,你会看到它有三种权限。尽管有这些权限,但这个文件不能被其他所有者修改,除非它是一个二进制文件,它也是不可执行的。
如果使用ln而没有选项,则创建一个硬链接,该链接基本上是同一文件的链接副本,而不是原始路径。由于我的意图是解释这些链接的文件权限,我们将保存为另一节创建特定类型的链接的优点和缺点。如果您创建了该文件的硬链接,那么权限将是普通文件的权限。
文件所有权
Linux,就像它所基于的Unix一样,它是一个占有的操作系统。正如我们在上一节中提到的,Linux中的所有内容都是一个文件。现在我们应该添加每个文件都必须拥有一个所有者。在大多数Linux系统上甚至有一个用户没有提供这样一个事实,即使没有人能成为某个人!
您可以使用chown命令分配文件所有权。如果您是管理员,则可以将特定文件的所有权转让给其他用户。比方说,你已经创建了一些文件来做日常的管理工作 - 例如,你从日志文件中删除了一些输出。您可能想要将该文件的所有权从用户身份转移到自己。你会做以下几点:
码:
chown bob:users log_20030226
现在你是该文件的所有者。如果你没有这样做,并希望修改它 - 例如在文件中写一些注释,你将不得不切换到root用户。现在,您可以安全地修改它以普通用户身份登录。
清理混乱
面对现实吧。孩子们不是唯一一个混乱的人。即使是最糟糕的青少年,电脑的硬盘也无法与之抗衡。任何使用Emacs编辑器的人都可以证明,它将会在你的目录中留下名为.saves- [数字+你的主机名]的文件。当你编辑一个文件时,Emacs也会创建一个名字相同的文件,但是在文件末尾会有波浪号。如果你已经搞砸了,并且希望能够回到开始编辑时的状态,那也没关系。但是如果你再也不会去编辑这个文件呢?您应该至少周期性地清理那些混淆主目录的文件。你可以使用这些工具来做到这一点,而不是为他们狩猎。
找 。-name“.saves *”
这会在最后找到任何名为'.saves'的文件,并将其传递给rm命令。同样,与使用-f(强制)选项的任何东西一样,您应该非常小心。如果你只是在寻找代字号文件,建议通过目录来完成:
码:
find /work -name "*~" -print -exec rm -f {} ;
正如你所看到的,你只是远离灾难的一个代名词!使用相同的技术,您可能必须执行可能禁止使用P2P文件共享网络的公司策略。管理层可能会因为在他们的服务器上有MP3文件而感到沮丧,而这种情况将会使你摆脱困境。再一次,如果工作人员有权从特定的公司范围内选择收听MP3,则必须谨慎行事。
码:
find /home -name "*.mp3" -print -exec rm -f {} ;
只会从/ home中的用户目录中删除这些文件。
关注吕田论坛获取更多资讯
领取专属 10元无门槛券
私享最新 技术干货