一、用户账户和组账户
1.1用户账号和组账号概述
Linux基于用户身份对资源访问进行控制 1.用户帐号 超级用户:root 用户是Linux 操作系统中默认的超级用户账号,对本主机拥有至高无上的权限,类似于Windows操作系统中的Administrator用户。只有当进行系统管理、维护任务时,才建议使用root用户登录系统,日常事务处理建议只使用普通用户账号。root拥有对系统的最高的管理权限ID=0
普通用户:普通用户账号需要由root 用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限系统用户UID:1-999 (centos7版本) 1-499 (centos6版本)UID:即每个用户的身份标示,类似于每个人的身份证号码
程序用户:在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行,如bin、daemon、ftp、 mail等伪用户一般不会用来登录系统的,它主要是用于维持某个服务的正常运行.如: ftp, apache
2.组帐号
管理员组: root, 0 普通组:GID
系统组: 1-499 (CentOS6) ,1-999 ( CENTOS7 ) 普通组: 500+ (CentOS6) ,1000+ ( CENTOS7 ) 表示该账户需要密码才能登录,为空时,账户无须密码即可登录
基本组(私有组):基于某种特定联系(如都需要访问FTP服务)将多个用户集合在一-起,即构成一个用户组,表示该组内所有用户的账号称为组账号。每一个用户账号至少属于一个组,这个组称为该用户的基本组(或私有组);
附加组(公共组):若该用户同时还包含在其他的组中,则这些组称为该用户的附加组(或公共组)。
3.UID和GID UID (User IDentity,用户标识号) GID (Group IDentify,组标识号)
1.2 用户账号文件 /etc/passwd
1.保存用户名称、宿主目录、登录Shell等基本信息
2.文件位置: /etc/passwd
3.每一行对应一个用户的帐号记录
[root@localhost ~]
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
1.3 用户账号文件/etc/shadow
1.保存用户的密码、账号有效期等信息
2.文件位置: /etc/shadow
3.每一行对应一个用户的密码记录
[root@localhost ~]
root:$1$55HB4pbx$acHqk4IZiHTZ9cw0ZJe8f0:14374:0:99999:7:::
bin:*:14374:0:99999:7.::
[root@localhost ~]
teacher:$1$BT7teaYX$s2sr6uFUwKhtU.8/8VpzB1:14374:0:99999:7:::
/etc/shadow (影子文件): /etc/shadow 文件只有root用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性
和/etc/passwd 文件一样, 文件中每行代表一个用户,同样使用":"作为分隔符,不同之处在于,每行用户信息被划分为9个字段:
第一列:账户名
第二列:存放真正加密的密码,采用SHA512散列算法更加安全, !! 和 * 表示没有密码不能登陆,新创建用户也是 !!,如果密码前面显示双感叹号表示该账户被锁定了
第三列:上一次修改密码的时间,从1970年1月1日开始算的,因为1970年是linux的诞生日, date -d “1970-01-01 15775 days” 可以查看哪一天改过
第四列:多久之后才可以修改密码,如果是 0,则密码可以随时修改
第五列:密码有效期,默认99999,表示永久生效
第六列:密码到期前的第几天发出告警信息,默认是7天,每次登录系统都会向该账户发出"修改密码"的警告信息
第七列:密码过期的宽限天数,过期后的几天还是可以登陆的,如果过了宽限天数,系统将不再让此账 户登陆,也不会提示账户过期,是完全禁用
第八列:账号失效时间,使用自1970年1月1日以来的总天数作为账户的失效时间
第九列:保留,未使用
chage命令: 用来修改帐号和密码的有效期限,针对目前系统已经存在的用户
chage [选项]用户名,
-m: 密码可更改的最小天数。为零时代表任何时候都可以更改密码
-M: 密码保持有效的最大天数。chage -M 60 root
-w: 用户密码到期前,提前收到警告信息的天数
-E: 帐号到期的日期。过了这天,此帐号将不可用
-d: 上一次更改的日期
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期
chage -E 2019-04-29 test
chage -d 2019-06-30 test
chage -d 0 test
date -d”+45 days" -u
总结: 第一个字段:账户名
第二个字段:存放真正加密的密码
第三个字段:密码最后一次修改的时间 (chage -d)
第四个字段:密码最小修改间隔时间 (chage -m)
第五个字段:密码的有效期 (chage -M)
第六个字段:密码需要变更前的警告天数 (chage -W)
第七个字段:密码过期后的宽限天数 (chage -I)
第八个字段:账号失效时间 (chage -E)
第九个字段:保留,未使用
二、用户账户管理
2.1添加用户账号 useradd
命令格式: useradd [选项] 用户名 常用选项 -u: 指定用户的UID号,要求该UID号码未被其他用户使用 -d: 指定用户的宿主目录位置(当与-M一起使用时,不生效) -e: 指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式 -g: 指定用户的基本组名(或使用GID号) -G: 指定用户的附加组名(或使用GID号) -M: 不建立宿主目录,即使/etc/login.defs系统配置中已设定要建立宿主目录 -s: 指定用户的登录Shell
useradd zhangsan
id zhangsan
tail -1 /etc/passwd
tail -1 /etc/ shadow
2.2 设置/更改用户口令 passwd
命令格式: passwd [选项] 用户名
常用选项 -d: 清空指定用户的密码,仅使用用户名即可登录系统 -l: 锁定用户账户 -S: 查看用户账户的状态(是否被锁定) -u: 解锁用户账户
passwd -l zhangsan
passwd -S zhangsan
passwd -u zhangsan
passwd -d zhangsan
###调用管道符,给zhangsan 用户设置密码“123”,为了方便管理系统,passwd命令提供了 --stdin 选项 用于批量给用户设置初始密码
echo "123456" | passwd --stdin 用户名
2.3 修改用户账号的属性 usermod
命令格式: usermod [选项] 用户名
常用选项 -l: 更改用户账号的登录名称(login Name) -L:锁定用户账户 -U:解锁用户账户
下列选项与useradd命令选项中的含义相同 -u:修改用户的UID号 -d:修改用户的宿主目录位置 -e: 修改用户的账户失效时间,可使用YYYY-MM-DD的日期格式 -g: 修改用户的基本组名(或使用GID号) -G:修改用户的附加组名(或使用GID号) -s:指定用户的登录shell
2.4 删除用户账号 userdel
命令格式: userdel [-r] 用户名 添加 -r 选项时 ,表示连用户的宿主目录也一并删除
id zhangsan
userdel -r zhangsan
ls -ld /home/zhangsan
三、组账号管理
3.1添加组账号 groupadd
命令格式: groupadd [-g GID] 组账号名
groupadd -g 1200 market
tail -1 /etc/group
3.2 添加删除组成员 gpasswd
命令格式: gpasswd [选项] 组账号名
设置组账号密码(极少用)、添加/删除组成员
常用选项 -a: 添加用户到组 -d:从组删除用户 -A:指定管理员 -M:指定组成员和-A差不多 -r:删除密码 -R:限制用户登入组,只有组中的成员才可以用newgrp加入该组
useradd mike
gpasswd -a mike root
groups mike
gpasswd -d webmaster root
正在将用户“webmaster”从“root”组中删除
3.3 删除组账号 groupdel
命令格式: groupdel 组账号名
groupdelb market
grep "market" /etc/group
四、用户账号文件与组账号文件
4.1.用户账号的初始配置文件
1.文件来源
新建用户账号时,从/etc/skel目录中复制而来
2.主要的用户初始配置文件 1. .bash_profile: 示例代码中为用户添加了2个环境变量(JAVA_HOME和CLASSPATH)并修改了已有环境变量PATH的值.(PATH的查找是从前开始查找,找到就返回)CLASSPATH环境变量的值是在JAVA运行时查找加载类的默认classpath
.bashrc: 例子中定义了路径,语言,命令别名(使用rm删除命令时总是加上-i参数需要用户确认,使用rm删除命令时总是加上-i参数需要用户确认,使用ls命令列出文件列表时加上颜色显示)每次修改.bashrc 后,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的位置,使之生效
一般会在.bashrc_profile 文件中显示调用.bashrc 登录Linux启动bash时会先去读取~/.bash_profile 文件,这样~/.bashrc也就得到执行了,你的个性化设置也就生效了 关于环境变量的读取顺序: 用户登录->>加载~/.bash_profile–>bash_profile中配置了首先使 ~/.bashrc生效
3 . .bash_logout 用途:用户登出时执行的命令
#~/.bash_logout
#在当前用户登出时,打印出logout 和当前的时间 echo “logout,data ”
例子: 如果需要每个用户登出时都清楚输入的命令历史记录,可以在 /etc/skel/.bash_logout 文件中 添加: rm -f $HOME/.bash_history 这样当用户在每次注销时.bash_history文件都会被删除
4.2 组账号文件
与用户文件相类似 /etc/group 保存组账号基本信息 /etc/gshadow 保存组账号的密码信息
与组账号相关的配置文件也有两个,分是/etc/group和/etc/gshadow 前者用于保存 组账号名称、GID号 、组成员等基本信息 后者用于保存组账号的加密密码字窜等信息(但是很少用到)某一个组账号包含哪些用户成员,将会在group文件内最后一个字段中体现出来(基本组对应从用户账号默认可能不会列出),多个组成员之间使用“,”(逗号)分隔
grep "^root" /etc/group
grep "root" /etc/group
五、查询账号相关信息的命令
5.1.查询账号信息 groups
groups 命令:
查询用户所属的组
groups [用户名]
5.2.查询账号信息 id
id 命令:
查询用户身份标识
id [用户名]
5.3.查询账号信息 finger
finger 命令:
查询用户账号的详细信息
finger [用户名]
5.4.查询账号信息w、who、users
w、who、users命令 查询已登录到主机的用户信息
通常使用tty来简称各种类型的终端设备,centos7系统 tty1表示图形界面, tty2-tty6表示文字界面,可以用Ctrl+Alt+F1-F6 切换
按Ctrl+Alt+F2登录 , 执行w命令 ,查看使用的终端就是 tty2
user:登录用户名 TTY:登录后系统分配的终端号 From:远程主机名,即从那里登录的 login@:何时登录 IDLE:用户空闲时间,这是个计时器,一旦用户执行任何操作,改计时器就会被重置 JCPU:和终端连接的所有进程占用时间 包括当前正在运行的后台作业占用时间 PCPU:当前进程所占用时间 WHAT:当前正在运行进程的命令行
pst说明是用于远程工具连接的,比如1xshell,后面的数字代表登录的时间顺序,越小证明登录的越早
六、文件/目录的权限和归属
访问权限 读取r:允许查看文件内容、显示目录列表
写入W:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行x:允许运行程序、切换目录
归属 属主:拥有该文件或目录的用户帐号
属组:拥有该文件或目录的组帐号
七、查看文件/目录的权限和归属
如“drwxr-xr-x”和“-rw-r–r--”权限字段有四部分组成,各自的含义如下所述 第一个字符:表示该文件的类型可以是 :d(目录)、b(块设备文件)、c(字符设备文件) “-”(普通文件)、字母“l”(链接文件)等 第2~4个字符:表示该文件的属主用户(User)对该文件的访问权限 第5~7个字符:表示该文件的属组内各成员用户(Group)对该文件的访问权限 第8~10个字符:表示其他任何用户(Other)对该文件的访问权限 第11个字符:这里的“.”与SELinux有关,目前不必关注
八、设置目录与文件权限chmod
chmod命令 上述格式中,字符组合“[ugoa…][+ - =][rwx]”或数字组合“nnn”的形式表示要设置的权限模式 其中,“nnn”为需要设置的具体权限值,如“755”“644”等: 而“ [ugoa…] [+ - =] [rwx]”的形式中,三个组成部分的含义及用法如下所述:
“ugoa”表示该权限设置所针对的用户类别,“u”代表文件属主,“g”代表文件属组内的用户, “o”代表其他任何用户,“a”代表所有用户(u,g,o的总和)
“±=”表示设置权限的操作动作。“+”代表增加相应的权限 “-”代表减少相应权限 “=”代表仅设置对应的权限
“rwx”是权限的字符组合形式,也可以拆分使用,如“r”“rx”等
常用选项 -R:递归修改指定目录下所有子项的权限
九、设置目录与文件归属chown
chown命令 chown 属主 文件或目录
chown :属主 文件或目录
chown 属主:属组 文件或目录
常用选项 -R:递归修改指定目录下所有文件、子目录的归属
十、权限掩码umask
umask作用
控制新建的文件或者目录的权限
默认权限去除umask的权限为新建的文件或者目录的权限
umask设置:umask 022
umask查看:umask
示例:
将umask设为000,新建目录或者文件,查看权限
将umask设为022,新建目录或者文件,再查看权限
十一、总结
1.用户账号管理(useradd、passwd、usermod、userdel)
2.组账号管理(groupadd、gpasswd、groupdel)
3.用户账号文件与组账号文件
4.查询账号相关信息的命令(groups、id、finger、w)
5.设置目录与文件权限(chmod)
6.设置目录与文件归属(chown)
|