Linux学习笔记(4)(用户组)

linux有个特点:
- [ ] $ 表示结尾
- [ ] ^ 表示开头

vim中,在末行模式,删除所有内容:

:%d
:1,$d

vim中进行缩进

1.先进入可视模式,选中需要缩进的内容
2.按>进行缩进

管理用户和组账户

和账户相关文件

/etc/passwd、/etc/shadow

和组相关文件

/etc/group、/etc/gshadow

账户宿主(家)目录中文件来源

新建用户帐号时,从 /etc/skel 目录中复制而来

默认定义账户的属性文件

/etc/login.defs
用于保存用户的帐号基本信息
/etc/passwd
root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

desktop:x:80:80:desktop:/var/lib/menu/kde:/sbin/nologin

mengqc:x:500:500:mengqc:/home/mengqc:/bin/bash
用户名:口令:用户标识号:组标识号:全名:主目录:登录Shell

用户账户:

-  超级用户root
-  程序用户
-  普通用户

UID (User Identity,用户标识号)

-  超级用户root的UID为0
-  程序用户的UID1-499
-  普通用户的UID大于等于500
  • [ ] 每个账户有一个唯一的UID
  • [ ] 每个组也有一个唯一的GID
  • [ ] 多个账户可以属于同一个组
用于保存密码字串、密码有效期等信息

文件位置:/etc/shadow
每一行对应一个用户的密码记录

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
fcq: $1$qhgBwkMM$4lOrfUC/PTdOJJ2bJUMci.:17237:0:99999:7:::
1)“登录名”是与/etc/passwd文件中的登录名相一致的用户账号
2)“口令”字段存放的是加密后的用户口令字,如果为空,则对应用户没有口令,登录时不需要口令;   
星号代表帐号被锁定;
双叹号表示这个密码已经过期了。
$6$开头的,表明是用SHA-512加密的,
$1$ 表明是用MD5加密的
$2$ 是用Blowfish加密的
$5$ 是用 SHA-256加密的
$6$ 是用 SHA-512加密的

3)“最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCOLinux中,这个时间起点是1970年1月1日。
4)“最小时间间隔”密码的最短有效天数,默认值为0
5)“最大时间间隔”密码的最长有效天数,默认值为99999
6)“警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
7)在密码过期之后多少天禁用此用户
8)“失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。
用于保存用户组信息

/etc/group文件

组帐号:
- [ ] 主要组(私有组)
- [ ] 次要组(附属组)

GID: (Group Identify,组标识号)

组名:口令:组标识号:组内用户列表
adm:x:4:root,adm,daemon

Linux组帐号

主要组(私有组)

与用户相关的默认组,在/etc/passwd文件的第四个字段定义

次要组(附属组)

用户可以同时属于其他的组,在/etc/group文件的第四个字段定义
/etc/skel/*文件

新建用户帐号时,复制到用户宿主目录中
主要控制用户初始配置文件

.bash_profile:用户每次登录时执行
.bashrc:每次进入新的Bash环境时执行
.bash_logout:用户每次退出登录时执行
/etc/profile 所有用户每次登录时会执行
/etc/gshadow文件

保存组帐号的密码信息
/etc/gshadow文件的应用极少,知道有这个文件即可

/etc/login.defs文件

对账户初始的属性设置
设置普通用户的UID和GID范围等

添加与删除用户

useradd命令
格式:useradd  [选项]...  用户名

-u:指定 UID 标记号
-d:指定宿主目录,缺省为 /home/用户名
-e:指定帐号失效时间
-g:指定用户的基本组名(或GID号)
-G:指定用户的附加组名(或GID号)
-M:不为用户建立并初始化宿主目录
-s:指定用户的登录Shell
[root@localhost cis]# useradd -g soft -G tech_now -d /cis/soft/a200 -s /bin/ksh a200

如果需要某个用户不能登录,可以设置他的登录shell为:
- [ ] /sbin/nologin 或者
- [ ] /bin/false

以某个用户的身份启动程序,那么这个用户必须是存在的,但是与这个用户能不能登录OS,是没有任何关系。

useradd命令在后台到底做了哪些工作
Useradd添加账户
/etc/passwd
/etc/shadow
/etc/group
/home
/etc/skel/*
nar/spool/mail

passwd命令
格式:passwd  [选项]...  用户名

常用命令选项

-d:清空用户的密码,使之无需密码即可登录
-l:锁定用户帐号
-S:查看用户帐号的状态(是否被锁定) 
-u:解锁用户帐号
--stdin:接收标准输入作为密码

root用户可以修改所有用户密码,不要求复杂性
普通用户只能改自己的密码,要求复杂性

userdel命令
格式:userdel  [-r]  用户名
添加 -r 选项时,表示连用户的宿主目录一并删除
[root@localhost ~]# userdel -r stu01
usermod命令
格式:usermod  [选项]...  用户名

常用命令选项

-l:更改用户帐号的登录名称
-L:锁定用户账户
-U:解锁用户账户
以下选项与useradd命令中的含义相同
 -u、-d、-e、-g、-G、-s
chage命令
格式:chage  [选项]...  用户名

常用命令选项

-l:列出密码时效的具体信息
groupadd命令
格式:groupadd  [-g GID]  组帐号名
[root@localhost ~]# groupadd -g 1000 market
groupdel命令
格式:groupdel  组帐号名
groupmod命令
用途:设置组名和组id
格式:groupmod [选项]...  组帐号名

常用命令选项

-n:修改组名
-g:修改组id
newgrp改变有效组
用户必须是要改变组的成员
id命令
用途:查询用户身份标识
格式:id  [用户名]
finger命令
用途:查询用户帐号的详细信息
格式:finger  [用户名]
chfn命令
用途:修改用户的备注信息,/etc/passwd第5字段
who、w、users命令
用途:查询已登录到主机的用户信息
groups命令
用途:查询用户所属的组

明文
密文
6 SfcrkERBd6BidaIz$2HGmi10Ut/gjJcOWEkZKJjM5zg0DYS6PSLlquJkBP5rXoWvZB.QAWlUcKoJdpKE9HwtiKfkvceldSsYsIFWU/0
- [ ] 第1部分:算法对应的数字
- [ ] 第2部份:盐值,salt,随机生成,提高密码安全性的

通过openssl可以生成密文密码

[root@lvs1 /]# openssl passwd -1 123
$1$tbYF0WsE$YWb3SupGrLLFv41VBsiJP/

新建的用户是没有设置密码的,是被禁用的,不能登录

破解root用户密码:
1.光驱要放入系统光盘
2.重启OS
3.修改启动菜单,进入1运行级别
4.设置新密码
5.重启OS

linux的运行级别:
查看默认的运行级别

# cat /etc/inittab

id:3:initdefault:

Default runlevel. The runlevels used are:

#   0 - halt (Do NOT set initdefault to this)    关机
#   1 - Single user mode        单用户
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)  多用户,无网络
#   3 - Full multiuser mode     完全多用户,文本界面(字符界面)
#   4 - unused              未使用
#   5 - X11                 完全多用户,图形界面
#   6 - reboot (Do NOT set initdefault to this)   重启

切换级别:
命令:init

# init 5

查看当前运行的级别:
命令:runlevel

# runlevel
N 3

passwd -l和usermod -L 都可以锁定用户
原理是破坏密文密码

将用户加入组:
1.usermod -G
2.gpasswd -a

目录的内容是目录下的文件名或者目录文件名

有没有权限删除文件,或者修改文件名,移动文件,需要查看该文件所在的目录是否有写权限

访问权限

可读
可写
可执行
chmod命令详细用法

指令名称 : chmod

使用权限 : 所有使用者

使用方式 : chmod [-cfvR] [–help] [–version] mode file…

说明 : Linux/Unix 的档案调用权限分为三级:档案拥有者、群组、其他。利用chmod可以藉以控制档案如何被他人所调用。
参数 :

mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中 
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。 
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。 
-c : 若该档案权限确实已经更改,才显示其更改动作 
-f : 若该档案权限无法被更改也不要显示错误讯息 
-v : 显示权限变更的详细资料 
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更) 
--help : 显示辅助说明 
--version : 显示版本 
chown命令详细用法

指令名称 : chown

使用权限 : root

使用方式 : chown [-cfhvR] [--help] [--version] user[:group] file... 
说明 : Linux/Unix 是多人多工作业系统,所有的档案皆有拥有者。利用 chown 可以将档案的拥
有者加以改变。一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以
改变别人的档案拥有者,也没有权限可以自己的档案拥有者改设为别人。只有系统管理者(root)才
有这样的权限。

user : 新的档案拥有者的使用者 ID
group : 新的档案拥有者的使用者群体(group)
-c或-change:作用与-v相似,但只传回修改的部分 
-f或–quiet或–silent:不显示错误信息 
-h或–no-dereference:只对符号链接的文件做修改,而不更改其他任何相关文件 
-R或-recursive:递归处理,将指定目录下的所有文件及子目录一并处理 
-v或–verbose:显示指令执行过程 
–dereference:作用和-h刚好相反 
–help:显示在线说明 
–reference=<参考文件或目录>:把指定文件或目录的所有者与所属组,统统设置成和参考文件或目录的所有者与所属组相同 
–version:显示版本信息

你可能感兴趣的:(linux)