前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >技术|用户、组及其它 Linux 特性

技术|用户、组及其它 Linux 特性

原创
作者头像
知忆
修改2021-07-05 10:10:08
6040
修改2021-07-05 10:10:08
举报

Linux和其他类Unix操作系统依赖于用户组,而不是逐个为用户分配权限和特权。一个组就是你想象的那样:一群在某种程度上相关的用户。

到这个阶段,在看到如何操作目录或文件夹之后,但在让自己一头扎进文件之前,我们必须重新审视权限、用户和组。幸运的是,有一个网站上已经有了一个优秀而全面的教程,讲到了权限,所以你应该去立刻阅读它。简而言之,你使用权限来确定谁可以对文件和目录执行操作,以及他们可以对每个文件和目录执行什么操作——从中读取、写入、移动、擦除等等。

要尝试本教程涵盖的所有内容,你需要在系统上创建新用户。让我们实践起来,为每一个需要借用你电脑的人创建一个用户,我们称之为guest账户。

警告:例如,如果你错误地删除了自己的用户和目录,那么创建用户,特别是删除用户以及主目录会严重损坏系统。你可能不想在你日常的工作机中练习,那么请在另一台机器或者虚拟机上练习。无论你是否想要安全地练习,经常备份你的东西总是一个好主意。检查备份是否正常工作,为你自己以后避免很多咬牙切齿的事情。

一个新用户你可以使用useradd命令来创建一个新用户。使用超级用户或root权限运行useradd,即使用sudo或su,这具体取决于你的系统,你可以:

sudouseradd-mguest然后输入你的密码。或者也可以这样:

su-c"useradd-mguest"然后输入root或超级用户的密码。

(为了简洁起见,我们将从现在开始假设你使用sudo获得超级用户或root权限。)

通过使用-m参数,useradd将为新用户创建一个主目录。你可以通过列出/home/guest来查看其内容。

然后你可以使用以下命令来为新用户设置密码:

sudopasswdguest或者你也可以使用adduser,这是一个交互式的命令,它会询问你一些问题,包括你要为用户分配的shell(是的,shell有不止一种),你希望其主目录在哪里,你希望他们属于哪些组(有关这点稍后会讲到)等等。在运行adduser结束时,你可以设置密码。注意,默认情况下,在许多发行版中都没有安装adduser,但安装了useradd。

顺便说一下,你可以使用userdel来移除一个用户:

sudouserdel-rguest使用-r选项,userdel不仅删除了guest用户,还删除了他们的主目录和邮件中的条目(如果有的话)。

主目录中的内容谈到用户的主目录,它依赖于你所使用的发行版。你可能已经注意到,当你使用-m选项时,useradd使用子目录填充用户的目录,包括音乐、文档和诸如此类的内容以及各种各样的隐藏文件。要查看guest主目录中的所有内容,运行sudols-la/home/guest。

进入新用户目录的内容通常是由/etc/skel架构目录确定的。有时它可能是一个不同的目录。要检查正在使用的目录,运行:

useradd-DGROUP100HOME/homeINACTIVE-1EXPIRESHELL/bin/bashSKEL/etc/skelCREATE_MAIL_SPOOLno这会给你一些额外的有趣信息,但你现在感兴趣的是SKEL/etc/skel这一行,在这种情况下,按照惯例,它指向/etc/skel/。

由于Linux中的所有东西都是可定制的,因此你可以更改那些放入新创建的用户目录的内容。试试这样做:在/etc/skel/中创建一个新目录:

sudomkdir/etc/skel/Documents然后创建一个包含欢迎消息的文件,并将其复制过来:

sudocpwelcome.txt/etc/skel/Documents现在删除guest账户:

sudouserdel-rguest再次创建:

sudouseradd-mguest嘿!你的Documents/目录和welcome.txt文件神奇地出现在了guest的主目录中。

你还可以在创建用户时通过编辑/etc/default/useradd来修改其他内容。我的看起来像这样:

GROUPusersHOME/homeINACTIVE-1EXPIRESHELL/bin/bashSKEL/etc/skelCREATE_MAIL_SPOOLno这些选项大多数都是不言自明的,但让我们仔细看看GROUP选项。

群组心态Linux和其他类Unix操作系统依赖于用户组,而不是逐个为用户分配权限和特权。一个组就是你想象的那样:一群在某种程度上相关的用户。在你的系统上可能有一组允许使用打印机的用户,他们属于lp(即“lineprinter”)组。传统上wheel组的成员是唯一可以通过使用su成为超级用户或root的成员。network用户组可以启动或关闭网络。还有许多诸如此类的。

不同的发行版有不同的组,具有相同或相似名称的组具有不同的权限,这也取决于你使用的发行版。因此,如果你在前一段中读到的内容与你系统中的内容不匹配,不要感到惊讶。

不管怎样,要查看系统中有哪些组,你可以使用:

getentgroupgetent命令列出了某些系统数据库的内容。

要查找当前用户所属的组,尝试:

groups当你使用useradd创建新用户时,除非你另行指定,否则用户将只属于一个组:他们自己。guest用户属于guest组。组使用户有权管理自己的东西,仅此而已。

你可以使用groupadd命令创建新组,然后添加用户:

sudogroupaddphotos例如,这将创建photos组。下一次,我们将使用它来构建一个共享目录,该组的所有成员都可以读取和写入,我们将更多地了解权限和特权。敬请关注!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档