Linux下有三类用户:
1.超级用户: root 具有操作系统的一切权限, UID为0
2.普通用户:具有操作系统有限的权限 UID为500—6000
3.伪用户: 是为了方便系统管理,满足相应的系统进程文件属主的要求,不能登录系统,UID为1--499
Linux通过 /etc/passwd进行用户管理,
执行命令打开该文件: vi /etc/passwd
在此文件中只定义账号,不定义口令。一行定义一个用户,分为七个部分:
第一列为账号名称,
第二列为用户密码(密码不在此定义),
第三列为用户标识码(用户ID),用来确认用户身份
第四列为用户所在组的表示(用户组ID),
第五列为用户相关信息(如root),
第六列为用户家目录(/root),
第七列为用户的环境(用户使用的shell)
shell:命令行命令解析器,如 echo $SHELL,查看当前shell
id 账户名,查看当前账户的uid
改变所属用户组:
chgrp [-R]dirname/filename ..
-R: 进行递归(recursive)的持续更改,即连同子目录下得所有文件、目录都更新成这个用户组。常常用在更改某一目录的情况
eg: chgrp users install.log //users为用户组名
更改文件拥有者:
文件拥有者必须已经存在于系统中们也就是在/etc/passwd这个文件中有记录的用户名称才可改变
chown [-R] 账号名称:文件或目录
chown [-R] 账号名称:用户组名称、文件或目录
eg: chown bin install.log
chown root:root install.log
当需要复制文件给其他人时:
cp 源文件 目的文
eg: cp .bashrc.bashrc_test
ls -al.bashrc*
更改9个属性:
数字类型改变文件权限
使用chmod命令改变文件的属性,属性的设置方法有两种,分别可以使用数字或者是符号:
Linux 文件的基本属性有9个,分别是 owner/group/others组别的read/write/excute属性。
eg: -rwxrwxrwx中,三个为一组,其中可以使用数字来表示各个属性,各属性的对照表位:
r:4
w:2
x:1
将同一组(owner/group/others)的3个属性(r/w/x)累加,如当前属性为[-rwxrwx---],则是:
owner=rwx=4+2+1=7
group=rwx=4+2+1=7
others= --- =0+0+0=0
该属性为770.
更改属性的命令chmod语法:
chmod [-R] xyz 文件或目录
xyz:就是数字类型的权限属性,为rwx属性数值的和
eg:
ls -al.bashrc
chmod 777.bashrc
ls -al.bashrc
符号类型改变文件权限
可以通过u(user)、g(group)、o(others)来表示三组的属性,a表示all,即全部的三组,读写属性可以写成r、w、x:
chmod |
u g o a |
+(加入) -(除去) =(设置) |
r w x |
文件或目录 |
eg: chmod u=rwx,go=rx.bashrc
如果想把一个文件属性设置为 -rwxr-xr--,可以这样: chmod u=rwx,g=rx,o=r filename
如果不知道文件的原先属性,但想增加其的每人均可写入的权限,可以这样:
chmod a+wfilename
去掉所有人的x属性:
chmod a-xfilename
- Linux用户管理三个重要文件详解:
Linux登陆需要用户名、密码。/etc/passwd 文件保存用户名。登录Linux时,Linux 先查找 /etc/passwd 文件中是否有这个用户名,没有则跳出,有则读取用户名的user ID 、 group ID 、用户名对应的根目录路径以及所使用的 shell ,最后在 /etc/shadow 中核对该 UID 对应的 PWD 是否正确,正确则登录到该用户的 shell。
1.1 /etc/passwd详解:
cat /etc/passwd
帐号名:用户名称,root 是系统默认最高管理员用户。密码:由于密码保存在 /etc/shadow 文件,所以这里用 “x” 表示,如果没有设置口令,则该项为空。用户ID:系统内部用户的唯一标识ID,其中用户 ID 有以下几种:
0 代表系统管理员,如果想建立一个系统管理员,可以先建立一个普通帐户,再将其用户ID改为 0 。
1-500 系统预留 ID,500 以上是普通用户 ID。
组ID:用户组标识 ID ,/etc/group 有关。描述信息:帐号的描述。用户根目录:用户登录起始目录,登录系统后首先进入此目录。root 用户默认是 /root,普通用户则是 /home/用户名。用户登录shell:用户登录系统后使用的 shell。
1.2 /etc/shadow详解:
早期的 unix 系统,用户帐号、密码都保存在 passwd ,即使密码以密文方式保存在 passwd 中,但 passwd 文件对所有用户可读,存在安全隐患。现在 Linux 使用“shadow”保存密码的密文,使用passwd文件保存用户帐号信息。“shadow” 文件只有管理员用户才可以访问。cat /etc/shadow | tail -4
帐户名称:用户名称,和 passwd 的意思相同。密码: 用户密码的密文。
密码栏的第一个字符为 “*” 表示这个用户不能登录,如果不想让此用户登录,在他前面加个“*” ;
第一个字符为“!”,则表示该用户被禁用,新创建的用户还没密码时就是禁用状态,使用“!!”表示;
第一个字符为“空”,表示用户没有密码,登录时不需要密码。
上次改动密码的日期:密码的最后更改日期,为什么是 15181 ?因为 Linux 计算日期是以1970年1月1日作为1,1971年1月1日就是366,因此推导我修改密码的日期表示为 15181。密码不可被改动的天数:表示多久后才可以改密码。“0” 表示可以随时更改。密码需要重新更改天数:必须在这个时间内更新密码,否则帐号将会暂时失效。99999,表示密码不需要更新。密码变更期期限快到前的警告期:帐号密码失效期限快到时,系统依照这个字段设定,发出警告,提醒用户密码将过期请更新密码,默认是 7。帐号失效期:如果过了警告期没有更新密码,使得密码失效,并且用户在这个字段限定的时间内没有向管理员报告,让帐号重新激活,这个用户将暂时失效。帐号取消日期:这个字段也使用1970年以来的日期计算方法,表示用户在此字段规定的时间之后将无法再使用。保留:保留字段。
1.3 /etc/group 详解:
从第一行开始分析,一共有四项,依次为:组名称:用户组名称了。组密码:一般不需设定,很少使用群组登录。但这个密码也保存在 /etc/shadow 中。组ID:用户组ID了。支持帐号的名称:这个群组的所有帐号。如果你想让david用户属于root这个群组,在第一行最后加上 “,davidi” 注意添加的时候没有空格。
Linux用户、用户组权限管理详解 --- 02
2,用户、用户组管理操作详解:
2.1 adduser 添加用户:
adduser [-u uid][-g group][-d home][-s shell]-u:直接给出userID
-g:直接给出GID
-d:直接将根目录建立在已存在目录
-s:定义shell
添加用户 garfield
1adduser garfield
通过前面介绍的三个用户管理文件检验用户 garfield 的添加是否成功:
当我们新建用户时,通过 /etc/login.defs 和 /etc/default/useradd 两文件实现新用户的基本设置。
cat /etc/login.defs
cat /etc/default/useradd
这个文件中SKEL这个选项指定用户的根目录内容是从 /etc/skel 这个目录下复制过去。
2.2 passwd 设置用户密码:
passwd [用户名] 设置密码
2.3 usermod 禁用、启用帐号:
usermod -L [用户名] 禁用帐号
usermod -U [用户名] 启用帐号
usermod -e YYYY-MM-DD [用户名]
usermod 命令禁用和启用账号通过在 /etc/shadow 中相应用户密码位之前添加和删除 "!" 实现的。
2.4 groupadd 创建组:
groupadd [-g gid [-o]] [-r] [-f] group
2.4.1 创建用户的时候指定用户属于那个用户组:
usersadd -g group_name user_name
2.4.2 更改用户的用户组:
usermod –g group_name user_name
2.4.3 将用户添加到其它组:
usermod –G group_name user_name
2.5 修改组的名称:
groupmod -n new_group_name old_ group_name
2.6 修改用户名称:
usermod –l new_user_name old_ user_name
2.7 删除用户:
userdel [-r] user_name
2.8 删除组:
groupdel group_name