文章目录
- 1. 用户账户和组账户
- 1.1 Linux超级用户是唯一的
- 1.2 用户帐号文件 vim /etc/passwd
- 1.3 用户账户文件/etc/shadow
- 1.4 添加用户账户
- 1.5 设置/更改用户口令passwd
- 1.6 修改账户属性usermod
- 1.7 用户账号的初始文件配置
- 1.8 组帐号文件
- 1.8.1 添加组账号groupadd
- 1.8.2 添加删除组成员gpasswd
- 2. 文件/目录的权限和归属
- 2.1访问权限
- 2.2 归属(所有权)
- 2.3 超看文件/目录的权限和归属
- 2.4 设置文件和目录权限chmod
- 符号类型改变权限
- 2.5 chown命令
- 2.6 umask作用
1. 用户账户和组账户
1.1 Linux超级用户是唯一的
私有组:基本组账号只有一个,一般为创建用户时指定的组。
附加组:用户除了基本组之外,额外添加指定的组。
Root账户uid gid 号为固定值0
普通程序 centos 5、6 500-60000 centos7 1000-60000
程序用户 centos5、6 1-499 centos7 1-999
1.2 用户帐号文件 vim /etc/passwd
vim /etc/passwd
root❌0:0:root:/root:/bin/bash
字段1:用户账号的名称
字段2:用户密码占位符“x”
字段3:用户账户的UID号
字段4:所属基本组的账号的GID
字段5:用户全名
字段6:宿主目录
字段7:登录shell信息(/bin/bash为可登录系统,/sbin/nolog和/bin/false为用户登录系统)
1.3 用户账户文件/etc/shadow
默认只有root用户能直接读取shadow中的内容,且不允许直接编辑该文件中的内容
/etc/shadow
字段1:用户帐号的名称
字段2、使用MD5加密的密码字串信息,当为"*"或"!!"时表示此用户不能登录到系统。若该字段内容为空,则该用户无须密码即可登录系统字段3:上次修改密码的时间,表示从1970年01月o1日算起到最近一次修改密码时间隔的天数
字段3:上次修改密码的时间,表示从1970年01月01日算起到最近一次修改密码时间隔的天数
字段4:密码的最短有效天数,自本次修改密码后,必须至少经过该天数才能再次修改密码.默认值为0,表示不进行限制
字段5:密码的最长有效天数,自本次修改密码后,经过该天数以后必须再次修改密码。默认值为99999,表示不进行限制
字段6:提前多少天警告用户密码将过期,欢认值为7
字段7:在密码过期之后名少天禁用此用广
字段8:帐号失效时间,此字段指定了用户作废的天数(从1970年01月o1日起计算),默认值为空,表示账号水久可用。数(从1970年01月o1日起计算),默认值为空,表示账号水久可用.
字段9:保留字段(未使用)
1.4 添加用户账户
useradd & adduser
在/etc/passwd文件和/etc/shadow文件的末尾增加该用户账号的记录。....
若未明确指定用户的宿主目录,则在/home|欢下自动创建与该用户账号同名的宿主日录,并在该目录中建立用户的各种初始配置文件
若没有明确指定用户所属的组,则自动创建与该用户账兮同名的基本组账号,组账兮的记录信息将保存到/etc/group和/etc/gshadow 文件中。
常用选项:
-u #指定用户的uID号,要求该UID号码未被其他用户使用。
-d #指定用户的宿主目录位置(当与-M一起使用时,不生效》。只能用绝对路径指定目录,且不需要事先创建目录-e:指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式。
-g #指定用户的基本组名(或使用GID号),对应的组名必须已存在。-G:指定用户的附加组名(或使用GID号),对应的组名必须已存在。-M:不建立宿主目录。
-s #指定用户的登录shell,(比如/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统)。
useradd -d / admin -gwheel -G root admin1
useradd -e 2021-12-31 -s/sbin/noloain admin2
1.5 设置/更改用户口令passwd
为用户账户设置密码 passwd
root用户可以指定用户名作为参数,对指定账户的密码进行管理,不指定用户名时,修改当前账户的密码
普通用户却只能执行单独的“passwd”命令修改自己的密码
常用选项
-d #清空指定用户的密码,仅使用用户名即可登录系统
-l #锁定用户账户,锁定的用户账户将无法再登陆系统
-s #查看用户账户的状态(是否被锁定)
-u #解锁用户账户
设置用户密码的方法
:echo “密码” | passwd --stdin 用户名
:echo<用户名>:<密码>|chpasswd
1.6 修改账户属性usermod
用户账号的初始配置文件文件
用户宿主自我下的初始配置.文件只对当前用户有效
/.bash profile
#此文件中的命令将在该用户每次登录时被执行,它会设置一些环境变量,并且会调用该用户的
~ /. bashre文件
#此文件中的命令公在每次打开新的bash shell时(也包括登录系统)被执行,并且会调用/etc/bashre文件
~ / . bash logout
#在此文件中的命令将在用户每次退出登录或退出bash shcll时执行全局配置文件对所有用户有效
/etc/profile
#这个文件是为系统全局变量配置文件,可通过重启系统或者执行source /etc/protile 命令使profile文件被读取
/etc/profile.d/
#这个文件实际上是/ctc/profile的子目录,存放的是一些应用程序所需的启动脚本
/ctc/bashrc
#每个运行bwwh she11的用户都会执行此文件,可通过执行bash 命令打开‘个新的tbash she11时,使 bashre文件被读取
vi etc/bashre
alias myIs="/Bin/Ls -lhr"
bash
typc myls
#PAT1变量用于设置可执行程序的球认搜索路径PATH生效的原理:每次启动系统的时候会初始化命令,会执行/etc/profile和~ /.bash protile。/etc/profile会将路径/usr/local/bin 、/ucr/bin、/usr/sbin迎加到PAH中去。然后调用/etc/profile.d目录下的脚本。
/etc/bashre
对所有用户有效
也是可以用来设置自动执行的命令和环境变量设置
会在任意用户每次登录或者切换shell环境时都会执行
~/.bash_profile
~/.bashre
/etc/profileroute add -net Xxx gw XXxl etc/profile.d/xxx.sh是/etc/profile的子目录对所有用户有效
全局系统环境变量配置文件,主要用于设置开机后自动执行的命令和环境变量设置只会在系统启动后执行一次,或者使用source /etc/profile手动加载生效
. letc/profile
letc/bashrc
对所有用户有效
也是可以用来设置自动执行的命令和环境变量设置
会在任意用户每次登录或者切换shell环境(su, bash等)都会执行
~ /.bash profile
只对家自录的用户有效效果类似letc/profile会调用~/ .bashrc
~/ .bashrdi
只对家目录的用户有效效果类似letc/ bashrc会调用l etc/ bashrc
1.7 用户账号的初始文件配置
/etc/profile /etc/bashre 对所有用户有效
~/bash_profile ~/.bashre 只针对当前用户有
1.8 组帐号文件
1.8.1 添加组账号groupadd
命令:
groupadd [-g GID]
1.8.2 添加删除组成员gpasswd
命令
gpasswd [选项]…组账号名
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-m:定义组成员列表,以逗号分隔
2. 文件/目录的权限和归属
2.1访问权限
- 读取r:允许查看文件内容、显示目录列表
- 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
- 可执行x:允许运行程序、切换目录
2.2 归属(所有权)
- 属主:拥有该文件或目录的用户账号
- 属组:拥有该文件或目录的组账号
2.3 超看文件/目录的权限和归属
2.4 设置文件和目录权限chmod
- 命令
chmod [ugba] [+ - =][rwx ]文件目录
chmod nnn(文件或目录)…
常用选项
-R:递归修改指定目录下所有子项的权限 - Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限, 先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限
r:4
w:2
x:1
举例来说,如果要将.bashrc这个文件所有的权限都设定启用,那么就下达:
[root@www ~]# ls -al .bashrc
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc
符号类型改变权限
- 基本上就九个权限分别是(1)user (2)group (3)others三种身份啦!那么我们就可以藉由u, g, o来代表三种身份的权限!此外, a 则代表 all 亦即全部的身份!那么读写的权限就可以写成r, w, x!也就是可以使用底下的方式来看:
- 假如我们要『设定』一个文件的权限成为『-rwxr-xr-x』时,基本上就是:
- user (u):具有可读、可写、可执行的权限;
- group 与 others (g/o):具有可读与执行的权限。
[root@www ~]# chmod u=rwx,go=rx .bashrc
# 注意喔!那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格!
[root@www ~]# ls -al .bashrc
-rwxr-xr-x 1 root root 395 Jul 4 11:45 .bashrc
2.5 chown命令
要注意的是, 用户必须是已经存在系统中的账号,也就是在/etc/passwd 这个文件中有纪录的用户名称才能改变。
- chown还可以修改组名,如果要连目录下的所有次目录或文件同时更改文件拥有者的话,直接加上 -R 的选项
[root@www ~]# chown [-R] 账号名称 文件或目录
[root@www ~]# chown [-R] 账号名称:组名 文件或目录
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都变更
范例:将install.log的拥有者改为bin这个账号:
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log
范例:将install.log的拥有者与群组改回为root:
[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log
2.6 umask作用