一、认识/etc/passwd和/etc/shadow
这两个文件可以说是Linux中最重要的文件之一。若果没有或则存在问题,您是难以登录Linux系统的
/etc/passwd由‘:’分割成7个数组,每位数组的具体涵义是:
(1)用户名(如第一行中的root就是用户名)linux系统用户权限管理,代表用帐户的字符串。用户名可以是大小写字母、数字、减号(不能出现在首位)、点以及顿号,其他字符不合法。即使用户名可以出现点,但不建议使用,尤其是首位为点时,另外加号也不建议使用,由于容易引起混淆
(2)储存的就是该帐号的口令,为何‘x’呢?初期的nuix系统口令确实是储存在这儿,但基于安全诱因,后来就将其储存早‘/etc/shadow’中了,在这儿只用一个‘x’代替。
(3)这个数字代表用户标示号,也称作UID。系统辨识用户身分就是通过这个数字来的0就是root,也就是您可以更改test用户的UID为零,这么系统会觉得root和test为同一个用户。一般UID个的取值范围是065535(但实际上早已可以支持到4294967294),0是超级用户的标示号,1499由系统保留,作为管理帐号,普通用户的标示从500开始,假如我么你自定义构建一个普通用户,您会看见该帐户的标示号小于或等于500的。
(4)这个数字代表组标示号,也称作GID。这个数组对应着/etc/group中的一条记录,虽然/etc/group/和/etc/passwd基本上类似。
(5)注释说明,该数组没有实际意义,一般记录该用户的一些属性比如姓名、电话、地址等。不过,当您使用finger的功能时才会显示这种信息的(稍后作介绍)
(6)用户的家目录,当用户登入时就处在这个目录下,root的家目录是/root,普通用户的家目录则为/home/username,这个数组可以自定义的,进入您构建一个普通用户test1,要想让test1的家目录在/data下,只要更改/etc/passwd文件中的test1那行中的该数组改为/data既可。
(7),用户登入后要启动一个进程,拿来将用户下达的指令传给内核,这就是shell。Linux的shell有好多种sh、csh、ksh、tcsh、bash/等,而Redhat/CentOS的shell就是bash。查看/etc/passwd文件,该制度单不仅/bin/bash外还有/sbin/nologin比较多linux系统用户权限管理,它表示不容许该帐号登入。倘若您想构建一个帐号不让他登陆,这么就可以把该数组盖晨/sbin/nologin,默认是/bin/bash
再来看看/etc/shadow这个文件,和/etc/passwd类似,用‘:’分割成9个数组
每位数组的涵义是:
(1)用户名,跟/etc/passwd对应。
(2)用户密码,这个才是该帐号的真正的面,不过这个密码早已加密过了,而且有些黑客还是才能揭秘的。所以,该文件属性设置为000,而且root帐户是可以访问或修改的。
(3)先前修改密码的日期,这个数字是这样估算得来的,距离1970年1月1日到先前修改密码的时间,比如先前修改密码的日期为2012年1月1日,则这个值就是‘365*(2012-1970)/4+1=15341’,由于假如是闰月,则有366天。
(4)要多少天才可以修改密码,默认是0,即不限制。
(5)密码多少天后到期。即在多少天内必须修改密码,比如这儿设置成30,则30天内必须修改一次密码,否则将不能登入系统,默认是9999,可以理解为永远不须要修改。
(6)密码到期前的警告时限,若这个值设置成7,则表示当7天后密码过期时,系统就发出警告告诉用户,提醒用户他的密码将在7天后到期。
(7)帐号失效时限。您可以这样理解,假如设置这个值为3,则表示:密码已然到期,但是用户并没有在到期前更改密码,这么再过3天,则这个帐号就失效了,即锁定了。
(8)帐号的生命周期,跟第三段一样,是按距离1970年1月1日多少天算的。它表示的涵义是,帐号在这个日期前可以使用,到期后帐号作废。
(9)作为保留用的,没有哪些意义。
二、新增/删掉用户和用户组
1、新增一个组“groupadd[-gGID]组名”
不加“-g”选项则根据系统默认的gid创建组,跟用户一样,GID也是从500开始的。
2、删除组“groupdel组名”
该没有特殊选项,但有一种情况不能删掉组
这是由于user1中包含user1用户,只有删掉帐户后才可以删掉该组。
3、增加用户“useradd[-uUID][-gGID][-dHOME][-M][-s]用户名”
‘-u’自定义UID
‘-g’是其属于早已存在的某个组,前面可以跟组id,也可以跟组名
‘-d’自定义用户的家目录
‘-M’不完善家目录
‘-s’自定义shell
‘useradd’不加任何选项直接跟用户名,则会创建一个跟用户名同样名子的组
4.删掉帐户“userdel[-r]用户名”
‘-r’的选项作用只有一个,就是删掉帐户的时侯连带帐户的家目录一起删掉。
*chfn修改用户的finger(不常用)
*创建/更改一个用户的密码“passwd[username]”
等创建完帐户后,默认是没有设置密码的,即使没有密码linux ,但该帐户同样登陆不了系统。只有设置好密码后登陆系统。为用户创建密码时,为了安全起见,请尽量设置复杂一些。您可以根据这样的规则来设置密码:
a,厚度小于10个字符
b,密码中包含大小写字母以及特殊字符“*”、“&”、“%”、等;
c,不规则性(不要出现词组或则个别数字)
d,不要带自己名子,公司名子,自己电话,自己生日等。
只有root才可以修该其他帐户的密码,普通帐户只能更改自己的密码,其他帐户的密码是不可以更改的
“mkpasswd”
这个常常用来世成密码,省的自己去想。默认您的Linux是没有这个命令的,须要安装一个包“expect”,假若您的Centos可以上网linux手机,请使用yuminstallexpect既可完成安装。安装好后,输入“mkpasswd”
Linux中有时侯普通用户做个别事情是有限制的。这时侯就须要切换root身分来做事了。
现假定我用一个普通用户test登陆(登录后使用“whoami”命令查看当前用户是谁)
命令su“su[-]username”
前面可以跟‘-’也可以不跟,普通用户su不加username时及时切换到root用户,其实root用户同样可以su到普通用户。‘-’这个字符的作用是,加上后会初始化当前用户的各类环境变量。我们用一个简单地实验来说明加与不加‘-’的区别:
命令sudo
用su是可以切换用户身分,假如每位普通用户都能切换到root身分,假如某个用户不留神泄露了root的密码,那岂不是系统十分的不安全?没有错,为了改进这个问题,形成了sudo这个命令。使用sudo执行一个root能够执行的命令是可以办到的,而且须要输入密码,这个密码并不是root的密码而是用户自己的密码。默认只有root用户能使用sudo命令,普通用户想要使用sudo,是须要root预先设定的,即,使用visudo命令去编辑相关的配置文件/etc/sudoers.若果没有visudo这个命令,请使用yuminstall-ysudo安装。
默认root才能sudo是由于这个文件中有一行“rootALL=(ALL)ALL”在该行下边加入“testALL=(ALL)ALL”就可以让test用户拥有了sudo的权力。使用“visudo”命令编辑/etc/sudoers配置文件,虽然它的操作方式和上面阿铭介绍的“vi”命令使用方式是一样的,按‘i’进入编辑模式,编辑完成后,按“Esc”,再输入”:wq”完成保存。
此时可以验证一下test的权限了
因为切换到test帐户后的当前目录仍然是在/root下,test帐户没有任何权限,所以‘ls’的时侯提示说权限不够,但是使用sudols输入test帐户自身的密码后就有权限了。初次使用sudo时会有前面的一大段提示,而后再度使用sudo命令则不再提示。
假如每降低一用户就设置一行,这样太麻>烦了。所以您可以这样设置。把“#%wheelALL=(ALL)ALL”前面的‘#‘去掉,让这一行生效。它的意思是,wheel这个组的所有用户都拥有了sudo的权力。接出来就须要您把想让有sudo权力的所有用户加入到wheel这个组中即可。
至此关于Linux系统用户管理的文章分享教程到此结束,合理的管理Linux系统用户是保证Linux系统安装的一个重要举措。
本文原创地址://gulass.cn/lxtzzzydwjzy.html编辑:刘遄,审核员:暂无