目录
一、用户账号和组账号
Linux基于用户身份对资源访问进行控制
用户帐号
超级用户、普通用户、程序用户
组帐号
基本组 (私有组)
附加组(公共组)
UID和GID
UID (User IDentity,用户标识号)
GID (Group IDentify,组标识号)
UID:用户标识号
GID:组标识号
管理员:root,0
程序用户:1-499(Centos6以前),1-999(Centos7以后)对守护进程获取资源进行权限分配
普通用户:500+(Centos6以前),1000+(Centos7以后)给用户进行交互式登录使用
1、用户账号
超级用户:root用户是Linux操作系统中默认的超级用户账号,对本主机拥有最高的权限。系统中超级用户是唯一的。
普通用户:由root用户或其他管理员用户创建,拥有的权限会受到限制,一般只在用户自己的宿主目录中拥有完整权限
程序用户:在安装Linux操作系统及部分应用程序时会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,仅用于维持系统或某个程序的正常运行。
如bin、daemon、fftp、mail等。
su命令
只是切换了root的身份, 但是shell环境、环境变量、工作目录等还都是普通用户的shell;su-命令
完全的切换到root用户,shell、环境变量等都是root用户包括工作目录。
切换用户时使用su-用户,可以切换到“用户” 包括root用户。
1.1 用户账号文件
用户账号的初始配置文件
1. 文件来源
• ouseradd命令添加一个新的用户账号后会在该用户的宿主录中建立一些初始配置文件
• 这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件。
2. 主要的用户初始配置文件
• ~/.bash_profile
• ~/.bashrc
• ~/.bash logout
用户账号文件/etc/passwd
1. 保存用户名称、宿主目录、登录Shell等基本信息
• 文件位置:/etc/passwd
• 每一行对应一个用户的帐号记录
[root@localhost~]#head-2letc/nasswd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
字段1:用户帐号的名称
字段2:用户密码占位符 X
字段3:用户帐号的UID号
字段4:所属基本组帐号的GID号
字段5:用户全名
字段6:宿主目录
字段7:登录Shell信息(/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)
用户账号文件件/etc/shadow
1. 保存用户的密码、账号有效期等信息
• 文件位置:/etc/shadow
• 每一行对应一个用户的密码记录
[root@localhost~]# head -2 /etc/shadow
root:$1555HB4pbxacHk4IZiHTZ9CWOZJe8f0:14374:0:99999:7:
bin:*:14374:0:99999:7
[root@localhost~]#tail-1/etcshadow
teacher:$1SBT7teaYX$s2sr6uFUwKhtU.8/8VpzB1:14374:0:99999:7
用户账号文件/etc/shadow
默认只有root用户能够读取shadow文件中的内容,且不允许直接编辑该文件中的内容root:$6$VyOUGOCv5HILM1wagZC/FwGfnrtJFnlT:18445:0:99999:7:
字段1:用户帐号的名称
字段2:使用MD5加密的密码字串信息,当为“或 时表示此用户不能登录到系统
若该字段内容为空,则该用户无须密码即可登录系统
字段3:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数
字段4:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码。默
认值为0,表示不进行限制
字段5:密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制
字段6:提前多少天警告用户密码将过期,默认值为7
字段7:在密码过期之后多少天禁用此用户
1.2 添加用户账号
useradd命令
• useradd[选项].用户名
• 常用选项
-u、-d、-、g、-G、-M、-S
root@localhost ~]# useradd -d ftphome/mike -g mike -Gftpuser -s /sbin/nologin mike
常用选项:
-u:指定用户的UID号,要求该UID号码未被其他用户使用
-d:指定用户的宿主目录位置(当与-M一起使用时,不生效)
-e:指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式。
-g:指定用户的基本组名(或使用GID号),对应的组名必须已存在
-G:指定用户的附加组名(或使用GID号),对应的组名必须已存在
-M:不建立宿主目录。
-s:指定用户的登录Shell, (比如/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)
1.3 设置更改用户密码
passwd命令
passwd [选项] 用户名
常用选项
-d、-、-S、-u
不指定用户名时,默认修改当前账号的密码
为用户账号设置密码passwd
root用户可以指定用户名作为参数,对指定账号的密码进行管理
普通用户却只能执行单独的“passwd”命令修改自己的密码
常用选项:
-d:清空指定用户的密码,仅使用用户名即可登录系统
-l:锁定用户账户,锁定的用户账号将无法再登录系统。图形化界面可以登录,文字界面无法登录
-S:查看用户账户的状态(是否被锁定)
-u:解锁用户账户
passwd用户名
echo 123 | passwd --stdin 用户名
PS:
--stdin:标准输入
--stout:标准输出
不用交互,适用批量操作
1.4 修改用户账号属性
usermod命令
usermod [选项] 用户名
常用选项
-l、-L、-U
以下选项与useradd命令中的含义相同
-u、-d、-e、-g、-G、-s
修改用户账号属性usermod
-u:修改用户的UID号。usermod-uuid号用户名。
-d:修改用户的宿主目录位置。
-e:修改用户的账户失效时间,可使用YYYY-MM-DD的日期格式。
-g:修改用户的基本组名(或使用GID号)。
-G:修改用户的附加组名(或使用GID号)。
-s:指定用户的登录Shell。
-L:锁定用户账户。
-U:解锁用户账户。
[root@localhost ~]#usermod -u1003 test #修改用户的UID
[root@localhost~]#usermod -d /home/test test #修改用户的宿主目录
[root@localhost~]#usermod -s /nologin test #指定用户的登录Shell
[root@localhost~]#usermod -L test #锁定用户账户
[root@localhost~]#usermd -U test #解锁用户账户
1.5 删除用户账号
userdel命令
userdel [-r] 用户名
• 添加-r选项时,表示连用户的宿主目录一并删除
[root@localhost ~]# useradd stuo1
[root@localhost ~]# Is -ld /homestuo1/
drwx--- --2 stu01 stu01 4096 09-09 12:38 /home/stu01
[root@localhost~]# userdel -r stu01 ##删除用户帐号stu01
[root@localhost~#Is -ld /home/stu01/
ls: /home/stu01/: 没有那个文件或目录
source /etc/profile
作用:在当前bash环境下读取并执行/etc/profile中的命令
用户账号的初始配置文件:
/etc/profile
/etc/profile是系统的全局配置文件,对所有用户都有效
它包含一些系统级别的环境变量和默认的系统级别的shell配置
2、组账号
• 基本组 (私有组):基本组账号只有一个,一般为创建用户时指定的组。
在/etc/passwd文件中第4字段记录的即为该用户的基本组GID号。
• 附加组 (公共组):用户除了基本组以外,额外添加指定的组, 可有可无, 可以有多个
2.1 组账号文件
与用户帐号文件相类似
• /etc/group:保存组帐号基本信息
• /etc/gshadow:保存组帐号的密码信息
[root@localhost ~]#grep "postfix" /etc/group
mail:x:12:postfix 组成员列表
postfix:x:89: 组帐号名
2.2 添加组账号
groupadd命令
groupadd [-gGID] 组账号名
示例:
[root@localhost ~]groupadd -g 1000 market 添加组帐号
[root@localhost ~]#tail -1 /etc/group
marketmarket:x:1000
添加组账号groupadd
[root@localhost ~]#groupadd test
[root@localhost ~]#tail -f /etc/group
-g:指定GID号
[root@localhost ~]#groupadd -g 88 ky29
[root@localhost ~]#tail -f /etc/group
2.3 删除组账号
groupdel命令
groupdel 组帐号名
示例:
[root@localhost ~]#groupdel market 删除组帐号market
[root@localhost ~]#grep market /etc/group
删除组账号groupdel
groupdel test
2.4 添加删除组成员
gpasswd命令
设置组帐号密码、添加删除组成员
gpasswd [选项] 组帐号名
常用选项
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分限
[root@localhost ~]# useradd yht
[root@localhost ~]# useradd hcy
[root@localhost~]#gpasswd -M yht,hcy,qzz dn #将用户yht、hcy和qzz加入到dn用户组中
[root@localhost ~]# cat /etc/group
[root@localhost]#gpasswd -a dn test
[root@localhost]#id qzz
uid=1100(dn) gid=1100(dn)组=1100(dn),1101(test)
1100为基本组或私有 1101为附加组或公共组
修改主机名:hostname 主机名 ##临时修改,重启失效
vim /etc/hostname ##永久修改
hostnamectlset-hostname主机名 ##永久修改
3、查询账号信息
groups命令
查询用户所属的组
groups [用户名]
id命令
查询用户身份标识
id [用户名]
查询用户帐号的详细信息finger ##需要先进行安装finger软件包
yum install -y finger
finger [用户名]
查询已登录到主机的用户信息
w、who、 users命令
二、权限
1、读、写、执行
4r、2w、1x
设置目录和普通1文件的权限chmod
chmodugoa...[+-=[rwx]文件或目录
“ugoa”表示该权限设置所针对的用户类别
“u”代表文件属主
“g”代表文件属组内的用户
“o”代表其他任何用户
“a”代表所有用户(省略时为a)
“+-=”表示设置权限的操作动作。“+”代表增加相应权限,“-”代表减少相应权限,“=”代表仅设置对应的权限。
rwx 是权限的字符组合形式,也可以拆分使用,如“r” “rx”等。
chmod u+x 123.sh:将文件的用户 (owner)权限设置为可执行
chmod g+x 123.sh:将文件的群组 (group) 权限设置为可执行
chmod g+w 123.sh:将文件的群组权限设置为可写
chmod u-x 123.sh:将文件的用户权限设置为不可执行。
chmod 777 文件或目录
-R:递归修改指定目录下所有子目录及文件的权限
touch myfile
mkdir -p aa/bb/cc
mod -R 777 aa
2、所属
设置目录和文件的归属chown
chown 属主 文件或目录
chown :属组 文件或目录
chgrp 属组 文件或目录
chown 属主:属组 文件或目录
chown 属主.属组 文件或目录
-R:递归修改指定目录下所有子目录及文件的归属
设置目录和文件的默认权限umask
指定目前用户在新建文件或目录时的权限默认值
新建的文件或者目录的权限为默认最大权限减去umask(普通文件的最大默认权限为6,目录的最大默认权限为7)
文件权限的奇数会往前加1,目录不影响