




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 要登入 Linux 系统一定要有账号与密码才行,不同的用户应该要拥有不同的权限。我们还可以透过 user/group 的特殊权限设定, 来规范出不同的用户组开发项目。在 Linux 的环境下,我们可以通过很多方式来限制用户能够使用的系统资源, 还有特殊权限限制。 第六章 Linux用户登录与用户管理 另外,还记得系统管理员的账号root吗?请问一下,除了 root 之外,是否可以有其它的系统管理员账号? 为什么要尽量避免使用数字型态的账号?如何修改用户相关的信息呢?这些我们都得要了解的。 1 Linux的账号与用户组 管理员的工作中,相当重要的一环就是管理账号。因为整个系统都是你在管理的,
2、并且所有的一般用户的申请,都必须要透过你的协助才行!所以你就必须要了解一下如何管理好一个服务器主机的账号。 在管理 Linux 主机的账号时,我们必须先来了解一下 Linux 到底是如何辨别每一个用户的。1.1 用户标识符: UID与GID 虽然我们登入 Linux 主机的时候,输入的是我们的账号,但是,其实 Linux 主机并不会直接认识你的账号名称的,他仅认识 ID 。 而你的 ID 与账号的对应就在 /etc/passwd 当中。 每个登录用户至少会取得2个ID: ? 和 ? 那么文件如何判别它的所有者与用户组呢? 其实就是利用 UID 与 GID ,系统会依据passwd和group的
3、内容,找到UID/GID对应的账号与组名再显示出来。 测试:更改一般用户的ID后,会发生什么情况? 说明 UID 与账号的对应性, 在一部正常运作的 Linux 主机环境下,随意修改系统上某些账号的 UID 很可能会导致某些程序无法进行,这是因为系统上已经有很多的数据在运行了,这将导致系统无法顺利运作的结果, 因为权限的问题。1.2 用户账号 Linux系统上面的用户如果需要登录主机以取得shell的环境工作时,它需要如何进行呢? 首先,利用tty1tty7的终端机提供的login接口,并输入账号与密码后才能够登录。当输入账号密码后,系统会帮助你处理什么? 1)先找寻/etc/passwd里面
4、是否有你输入的账号 2)核对密码表 3)ok的话,则进入shell的控管的阶段 通过上面的流程我们可以知道,与用户账号有关的2个非常重要的文件,一个是管理用户UID/GID重要参数的/etc/passwd,一个则是专门管理密码相关数据的/etc/shadow。 /etc/passwd 每一行都代表一个账号, 有几行就代表有几个账号在你的系统中!不过需要特别留意的是,很多账号本来就是系统中必须要的,我们可以简称他为系统账号, 例如 bin, daemon, adm, nobody 等等,这些账号是系统正常运作时所需要的,请不要随意删掉。 打开passwd文件显示如下信息: UID 限制: id范
5、围0(系统管理员);1499(系统账号);50065535(可登陆账号) GID 与/etc/group有关,通过组名与GID对应用户主文件夹 可更改 shell/etc/shadow 由于每个程序都需要取得 UID 与 GID 来判断权限的问题,因此各程序通过/etc/passwd来了解账号的权限。所以, /etc/passwd 的权限必须要设定成为 ?这样的权限。早期的密码容易被try and error出来。 后来发展出将密码移动到 /etc/shadow 这个文件分隔开来的技术, 而且还加入很多的密码限制参数在 /etc/shadow 里头。root: $6$an2tPoXL$FRKo
6、HsqxM6XqP/DGhjOqysEK.hyJjznXVLZL/mxIKYJZvAEcDp7w60o3VcL0OI/6dRRxM7vZA2aUZHwGucTfl0 :16321:0:99999:7:账号名称 密码最近更改密码的日期密码不可被更改的天数密码需要重新更改的天数密码需要更改期限前的警告天数密码过期后的账号宽限时间账号失效日期保留1.3 有效与初始化用户组:groups,newgrp 认识了账号相关的两个文件 /etc/passwd 与 /etc/shadow 之后,那么对于群组的配置文件在哪里?还有,在 /etc/passwd 的第四列的 GID 又是什么? 此时就需要了解 /et
7、c/group 与 /etc/gshadow 。1.3.1 /etc/group文件结构 这个文件就是在记录 GID 与群组名称的对应。 账号相关文件之间的UID/GID与密码相关性示意图1.3.2 有效用户组(effective group)与初始化用户组(initial group) GID 就是所谓的初始用户组 ( initial group ) ,也就是说,当使用者一登入系统,立刻就拥有这个群组的相关权限的意思。 在上例中,如果今天我要建立一个新的文件或者是新的目录,请问一下,新文件的群组是 ubuntu 还是 users ? 这就得要检查一下当时的有效群组了 (effective g
8、roup)。groups:有效与支持用户组的查看 如果我以 ubuntu 这个用户的身份登入后,该如何知道我所有支持的群组呢? groupsnewgrp:有效用户组的切换 如何更改有效用户组?就是使用newgrp。不过使用该命令式有限制的,那就是你想要切换的用户组必须是你已经有支持的用户组。 练习:新建一用户,把users加入到该用户组,并更改users为该用户的有效用户组。 所以,newgrp 这个指令可以变更目前用户的有效群组, 而且是另外以一个 shell 来提供登入的。(示意图) 新取得一个shell,要回到原来的环境,则输入exit。1.3.3 /etc/gshadow 使用newg
9、rp 这个指令的用法前,需要了解/etc/gshadow 这个设置。 事实上,这个 /etc/gshadow 最大的功能是在于创建管理员。2 账号管理 既然要管理账号,当然是由新增与移除用户开始的。下面我们就分别来谈一谈如何新增、 移除与更改用户的相关信息。2.1 新增与删除用户: useradd, 相关配置文件, passwd, usermod, userdeluseradd:新建用户 # useradd -u UID -g 初始用户组 -G 次要用户组 -Mm -c 说明栏 -d 主文件夹绝对路径 -s shell 用户账户名参数:-u :后面接的是 UID ,是一组数字。直接指定一个特定
10、的 UID 给这个账号;-g :后面接的那个群组名称就是我们上面提到的 initial group,该 group ID (GID) 会被放置到 /etc/passwd 的第四个字段内。-G :后面接的群组名称则是这个账号还可以支持的群组。这个参数会修改 /etc/group 内的相关资料。-M :强制!不要建立用户主文件夹-m :强制!要建立用户主文件夹-c :这个就是 /etc/passwd 的第五栏的说明内容,可以随便我们设定-d :指定某个目录成为主文件夹,而不要使用默认值;-r :建立一个系统的账号,这个账号的 UID 会有限制 /etc/login.defs)-s :后面接一个 s
11、hell ,预设是 /bin/bash-e :接日期,可写入shadow的第八字段,即账号失效日的设定-f :shadow第七字段,指定密码是否会失效。0为立即失效,-1永远不失效例1:新建一用户yfl207-test1,查看其主文件夹的权限,并在用户/组/密码文件中查看关于该用户的内容 上述例子说明,当我们使用“useradd 账号”创建用户时,系统会默认帮我们处理几个项目:在passwd中创建一行与账号相关的数据;在shadow中将此账号相关参数填入,但尚未有密码;在group里面加入一个与账号一模一样的组名;在home下面创建一个与账号同名的目录作为用户主目录,且权限为700。 最后,需
12、要使用“passwd 账号”来给予密码例2:假设我知道我的系统当中有个群组名称为 users ,且 UID 700 并不存在,请用user为初始用户组,以及UID为700创建一个名为 yfl207-test2 的账号。例3:创建一个系统账号,名称为yfl207-test3. 账号管理是很复杂的,useradd 这个指令至少可能会更改到的地方有: /etc/passwd /etc/shadow /etc/group /etc/gshadow /home/username思考:在例1中为何 useradd yfl207-test1 他会主动在 /home/yfl207-test1 建立起主文件夹?
13、主文件夹内有什么数据且来自哪里? 为何预设使用的是 /bin/bash 这个 shell ?useradd参考文件默认用户组默认主文件夹所在目录密码失效日期,第七列账号失效日,第八列默认的shell用户主文件夹的内容数据参考目录是否主动帮用户创建邮件信箱 关于群组的建立机制: 当我们直接使用 useradd 来新增账号时,在预设的情况下,相关的信息都是参考 /etc/default/useradd 这个文件内容的设定的。不过,对于使用者群组的建立机制中, 则有两种不一样的机制存在的: 私有用户组机制:新建使用者时,若无指定 initial group , 则系统会主动建立一个与账号相同的群组名
14、称,以该群组作为用户的 initial group; 公共用户组机制:新建使用者时,预设不会建立新群组,而以 /etc/default/useradd 内的 GROUP 设定值作为用户的 initial group 。passwd 使用 useradd 建立了账号之后,在预设的情况下,该账号是暂时被封锁的, 也就是说,该账号是无法登入的。 那该如何是好?#passwd -stdin #passwd -l -u -stdin -S -n -x -w -i 账号参数:-stdin :通过来自前一个管道的数据作为密码输入-l :lock的意思,将shadow第2列最前面加上!使密码失效-u :unl
15、ock-S :列出密码相关参数,即shadow的大部分内容-n :shadow第4列 -x : shadow第5列 -w :shadow第6列 -i : shadow第7列例4:请root给予yfl207-test2密码。例5:用yfl207-test2登录,修改自己的密码。 理论上,你的密码最好要符合如下的要求: 密码不能与账号相同; 密码尽量不要选用字典里面会出现的字符串; 密码需要超过 8 个字符; 密码不要输入个人信息; 密码不要使用简单的关系式; 密码尽量使用大小写字符、数字、特殊字符的组合 。 例6:使用-stdin新建用户yfl207-test2密码(abcdef)。 chage
16、 除了使用passwd S 列出密码相关参数外,还可以使用chage进行更加详细的密码参数显示#chage -ldEImMw 账号名参数:-stdin :通过来自前一个管道的数据作为密码输入-l :列出该账号的详细密码参数-d :接日期(最近一次更改密码的日期,YYYY-MM-DD)-E :接日期(账号失效日,YYYY-MM-DD)-I :接天数(密码失效日期)-m :接天数(密码最短保留天数)-M :接天数(密码多久需要进行更改)-W :接天数(密码过期前警告日期)例7:列出yfl207-test2的详细密码参数 chage有一个很不错的功能,即让用户在第一次登录时强制他们一定要更改密码后才
17、能使用系统的资源。例8:新建一个名为yfl207-test4的账号,该账号第一次登录后使用默认密码,但必须要更改过密码后使用新密码才能够登录系统使用bash环境。usermod 在 useradd 的时候加入了错误的设定数据。或者是,在使用 useradd 后,发现某些地方还可以进行细部修改。 此时,当然我们可以直接到 /etc/passwd 或 /etc/shadow 去修改相对应字段的数据, 不过,Linux 也有提供相关的指令让大家来进行账号相关数据的微调。usermod -cdegGlsuLU username参数:-c :后面接账号的说明,即 /etc/passwd 第五列的说明,可
18、以加入一些账号的说明。-d :后面接账号的主文件夹,即修改 /etc/passwd 的第六列;-e :后面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 内的第八个字段数据。-g :后面接 初始用户组,修改 /etc/passwd 的第四个字段,亦即是 GID 的字段。-G :后面接 次要用户组,修改这个用户能够支持的用户组,修改的是 /etc/group-l :后面接账号名称。亦即是修改账号名称, /etc/passwd 的第一列-s :后面接 Shell 的实际文件,例如 /bin/bash 或 /bin/csh 等等。usermod -cdegGlsuLU use
19、rname参数:-u :后面接 UID 数字啦!即 /etc/passwd 第三列的数据;-L :暂时将用户的密码冻结,让他无法登入。其实仅改 /etc/shadow 的密码栏。-U :将 /etc/shadow 密码列的 ! 拿掉,解冻。例9:修改用户yfl207-test2的说明列,加上“ubuntus test”的说明,并查看;该用户的密码在2015-5-31失效,修改后查看; 开始在新建用户yfl207-test3这个用户时并没有给予主文件夹,请新建他的主文件夹。(确认是否有主文件夹-建立-该主文件夹设置用户和组-更改权限-查看)userdel 目的在删除用户的相关数据与他相关的数据有
20、: /etc/passwd /etc/shadow /etc/group /etc/gshadow /home/username /var/spool/mail/username # userdel -r username参数:-r :连同用户的主文件夹也一起删除 通常我们要移除一个账号的时候,你可以手动的将 /etc/passwd 与 /etc/shadow 里头的该账号取消即可。2.2 用户功能 不论是 useradd、usermod、userdel ,都是系统管理员所能够使用的指令, 如果我是一般身份使用者,那么我是否除了密码之外,就无法更改其它的数据呢?finger finger 的中
21、文字面意义是:手指。这个 finger 可以查阅很多用户相关的信息。 大部分都是/etc/passwd这个文件里面的信息。# finger -s username参数:-s :仅列出用户的账号、全名、终端机代号与登录时间等;-m:列出与后面接的账号相同者,而不是利用部分对比。例10:列出ubuntu的用户相关账号属性,同时新建自己的计划文档,并显示目前系统上面要登录的用户与登录时间。chfn 有点像change finger的意思,使用方法如下:chfn -foph 帐号名参数:-f :后面接完整的大名;-o :您办公室的房间号码;-p :办公室的电话号码;-h :家里的电话号码! 例11:u
22、buntu自己更改一下自己的相关信息,并查看更改后的信息内容。chsh 有点像change shell的意思,使用方法如下:chsh -ls参数:-l :列出目前系统上面可用的 shell ,其实就是 /etc/shells 的内容!-s :设定修改自己的 Shell 。例12:用ubuntu身份列出系统上所有合法的shell,并且制定rbash为自己的bash。 从上面可以看出chfn与chsh都能更改passwd这个系统文件,那么它们的权限是什么?id 该命令可以查询某人或自己的相关 UID/GID 等等的信息。# id username2.3 新增与删除用户组 了解了账号的新增、删除、更
23、动与查询后,我们再来关于群组的相关内容。 基本上,群组的内容都与这两个文件有关: /etc/group和 /etc/gshadow。群组的内容其实很简单,都是上面两个文件的新增、修改与移除而已, 不过,如果再加上有效群组的概念,那么 newgrp 与 gpasswd 则不可不知。groupadd#groupadd -g gid -r参数:-g :后面接某个特定的 GID ,用来直接给予某个 GID ;-r :建立系统用户组。与 /etc/login.defs 内的 GID_MIN 有关。例13:新建一群组,名称为xxy,查看新群组的GID。groupmod 跟 usermod 类似的,这个指令
24、仅是在进行 group 相关参数的修改。# groupmod -g gid -n group_name参数:-g :修改既有的 GID 数字;-n :修改既有的组名例14:将刚才新建的xxy组名改成myxxy,GID为222。groupdel # groupdel groupname例15:分别删除myxxy和ubuntu这2个用户组问: 为什么myxxy可以删除,但是ubuntu却不能删除?答: 有某个账号 (/etc/passwd) 的 initial group 使用该用户组。 如果要删除 某个用户组,则必须确认 /etc/passwd 内的账号没有任何人使用该用户组作为 initial
25、 group 才行。gpasswd:用户组管理员功能 如果系统管理员太忙了,导致某些账号想要加入某个项目时找不到人帮忙,这个时候可以新建“用户组管理员”。什么是用户组管理员? 让某个用户组具有一个管理员,这个用户组管理员可以管理哪些账号可以加入/移除该用户组;要如何新建一个用户组管理员?关于系统管理员(root)做的动作:# gpasswd groupname# gpasswd -A user1,. -M user3,user4. groupname# gpasswd -rR groupname参数: :若没有任何参数时,表示给予 groupname 一个密码(/etc/gshadow);-A
26、 :将 groupname 的主控权交由后面的用户管理(该用户组的管理员);-M :将某些账号加入这个用户组当中;-r :将 groupname 的密码移除;-R :让 groupname 的密码栏失效,所以 newgrp 就不能使用了。关于用户组管理员(Group administrator)做的操作$ gpasswd -ad user groupname参数:-a :将某位用户加入到 groupname 这个用户组当中!-d :将某位用户者移除出 groupname 这个用户组当中。例16:新建一用户组,名称为testgroup,且用户组交由ubuntu管理。例17:以ubuntu身份登录
27、系统,并且让他加入ubuntu,yfl207-test1成为testgroup成员。2.4 账号管理实例 账号管理有时候我们需要考虑到一台主机上面可能有多个账号在协同工作。实例1:账号名称账号全名支援次要用户组是否可以登录主机密码myuser11st usermygroup1可以passwordmyuser22nd usermygroup1可以passwordmyuser33rd user无额外支持不可以password实例2 假设系统中的用户pro1、pro2和pro3是同一项目开发人员,你想要让这三个用户在同一目录下面工作,但这三个用户还是拥有自己的主文件夹与基本的私有用户组。假设你想要让
28、这个项目计划在/srv/projetca目录下开发,如何实现。实例3 加入实例1中的myuser1是projetca的项目经理,他需要查看这个项目的内容,但是他不可以修改项目目录内的任何数据,如何实现?3 用户身份切换 在 Linux 系统当中还要作身份的变换?这是为什么?可能有下面几个原因: 使用一般账号:系统平日操作的好习惯 用较低权限启动系统服务 软件本身的限制 由于上述考虑,所有我们都是使用一般账号登陆系统,等有需要进行系统维护或软件更新时才转为root的身份来操作。 一般用户转变身份称为root有2种方式:以“su ”直接将身份变成root(需要root的密码)以“sudo命令”执行
29、root的命令串3.1 su su是最简单的身份切换命令,它可以进行任何身份的切换。方法如下:# su -lm -c 命令 username参数:- :如果执行 su - 时,表示该使用者想要变换身份成为 root ,且使用 root 的环境设定参数文件,如 /root/.bash_profile 等等。-l :后面可以接用户账号,例如 su -l ubuntu ,这个 -l 好处是,可使用欲变换身份者他的所有相关环境设定。-m :-m 与 -p 是一样的,表示使用目前的环境设定,而不重新读取新使用者的设定。-c :仅进行一次指令,所以 -c 后面可以加上指令。 在su的用法中,有没有加上“-
30、”差别很大,因为涉及login-shell与non-login shell的变量读取方法。例18:假设你原来是ubuntu身份,想要使用non-login shell的方式变成root。 通过上例大家可以发现:如果使用 su 没有加上 - 的话,那么很多原本使用者的相关设定会继续存在;这也会造成后来的 root 身份在执行时的困扰,最常见的就是 PATH 这个变量的问题!例19:使用login shell的方式切换为root的身份并查看变量。例20:ubuntu想要执行“head n 5 /etc/shadow”一次,且已知root密码。 在su的用法中,有没有加上“-”差别很大,因为涉及lo
31、gin-shell与non-login shell的变量读取方法。例18:假设你原来是ubuntu身份,想要使用non-login shell的方式变成root。 通过上例大家可以发现:如果使用 su 没有加上 - 的话,那么很多原本使用者的相关设定会继续存在;这也会造成后来的 root 身份在执行时的困扰,最常见的就是 PATH 这个变量的问题!例19:使用login shell的方式切换为root的身份并查看变量例20:ubuntu想要执行“head n 5 /etc/passwd”一次,且已知root密码。su也有其缺点:多人管理,需要知道root密码,容易泄露3.2 sudo 相对于su需要了解切换用户的密码,sudo的执行仅需要自己的密码即可。甚至可以设置不需要密码即可执行sudo。 仅有/etc/sudoers内的用户才能够执行sudo命令。sudo命令的用法# sudo -b -u 新用户账号 参数:-b :将后续的命令让
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 无线基站维护培训课件
- 抖音商户短视频创意提案评审制度
- BWA-6047-生命科学试剂-MCE
- 江苏省兴化市顾庄区三校2024-2025学年七上数学期末教学质量检测模拟试题含解析
- 美发培训卷杠课件
- 国际多式联运操作规范与风险管理
- 航空行业三年发展报告:国际与国内市场的比较研究
- 2024-2025学年浙江省杭州市滨江区数学七年级第一学期期末调研试题含解析
- 云南司法警官职业学院《国画山水》2023-2024学年第一学期期末试卷
- 河道垃圾清理管理办法
- 监理通知回执单新
- 母婴保健-助产技术理论考核试题题库及答案
- 保洁服务考核表(仅供参考)
- dd5e人物卡可填充格式角色卡夜版
- 教师进企业实践三方协议书
- 施工现场隐患图片识别合集
- 山西省建设工程计价依据
- 煤矿在用安全设备检测检验制度
- GB/T 24632.2-2009产品几何技术规范(GPS)圆度第2部分:规范操作集
- GB/T 20428-2006岩石平板
- GB/T 11363-1989钎焊接头强度试验方法
评论
0/150
提交评论