1

Linux用户及权限详解

 1 year ago
source link: https://blog.51cto.com/u_15083038/5994117
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Linux用户及权限详解

精选 原创

沐浴阳光的黑衣微笑少年 2023-01-06 16:04:34 ©著作权

文章标签 权限管理 文章分类 Linux 系统/运维 阅读数208

3_4 Linux用户及权限详解

用户、组、权限

安全上下文(security context):

权限:r,w,x

r:可读,可以使用类似cat等命令查看文件内容

w: 可写,可以编辑或者删除此文件

x: 可执行,eXacutable,可以命令提示符下当作命令提交给内核运行

r: 可以对此目录执行ls以列出内部所有文件

w: 可以在此目录创建文件

x: 可以使用cd切换进此目录,也可以使用ls -l 查看内部文件的详细信息

r--:只读

r-x:读和执行

---:无权限

0 000 ---:无权限

1 001 --x:执行

2 010 -w-:写

3 011 -wx:写和执行

4 100 r--:只读

5 101 r-x:读和执行

6 110 rw-:读写

7 111 rwx:读写执行

755:rwxr-xr-x

用户:UID(id标识用户)、/etc/passwd(用户信息库,存储用户对应id)

组:GID、/etc/group

解析:名称解析

影子口令:

用户:/etc/shadow (存放密码)

组:/etc/gshadow

用户类别:

管理员:id为0

普通用户:1-65535

系统用户:1-499,用来运行后台进程,不允许登录系统

一般用户:500-60000

用户类别:

管理员组:

用户类别(分法2):

私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户名同名的组

附加组、额外组:默认组以外的其它组

查看passwd文件:

cat /etc/passwd

用whatis passwd可以查看passwd在man文档有几个章节

七个字段:

一:account,登录名

二:password,密码占位符

三:UID

四:GID

五:comment,用户注释信息

六:HOME DIR,家目录

七:shell,用户的默认shell

cat /etc/shells:查看用户合法shell

cat /etc/shadow:查看shadow文件,可以用man 5 shadow

一:登录名

二:encrypted password:加密的密码。。两个叹号表示锁定,不能登录。。写入文件前会加入随机生成的杂质,再生成密文。防止密码系统猜到密码

三:密码上次修改时间

四:密码最少使用时间

五:密码最长使用期限

六:还有多久过期

七:密码过期延长时间,不改不让使用。这几天没登陆,需要用管理员解锁

八:密码有效天数。过期无法登录

九:保留字段

加密方法:

对称加密:加密和解密使用同一个密码

公钥加密:每个密码都成对出现,一个为私钥(secret key),一个为公钥(public key)。。时间比对称慢三个数量级以上,多用于密钥交换

单向加密,散列加密:也叫指纹加密,提取数据特征码(每个数据有个唯一的特征码,类似人的指纹,不可逆)。常用于数据完整性校验

 1、雪崩效应(初始输入数据一点点改变,特征码结果变化很大)

 2、定长输出

 MD5:message Digest(5是版本号),128位定长输出

 SHA1:Secure Hash Algorithm,160位定长输出。还有SHA1 256和512位定长输出

添加用户:useradd(用which useradd)。adduser,软连接到useradd,本质上一样

useradd USERNAME

管理员改其它用户密码:

passwd USERNAME

为什么添加用户会主动添加一些属性:

cd /etc/default 然后cat useradd

cat /etc/group

添加组:groupadd GROUPNAME

04_01用户管理命令详解

用户管理命令:

useradd、userdel、usermod、passwd、chsh、chfn、finger、id、chage

useradd [options] USERNAME

 -u UID(大于等于500,其它用户未使用,默认/etc/passwd里最后一个用户id号加一。。一般情况下与组id相同))

 -g GID(基本组。可用组名或者组id,指定前组要先存在)

 -G ,...(附加组)

 -c “COMMENT” 注释信息

 -d /path/to/somedirectory 指定家目录 如:useradd -c “Tony Blare” -d /home/blare user4

 -s 指定shell(目录。。。此shell一定存在于/etc/shells文件里)

 -m -k 强行创建家目录并复制skel文件

 -M 不给用户创建家目录

 -r:添加系统用户

/etc/login.defs 设置用户信息

/etc/shells:指定了当前系统可用的安全shell

环境变量:

 HISTSIZE

 SHELL

查看此用户用什么shell:echo $SHELL

userdel  

userdel [options] USERNAME (默认不删除家目录)

 -r 同时删除用户的家目录

id  查看用户的账号属性信息

id [options] [USERNAME] 不加用户,默认当前用户

finger 查看用户账号信息

 finger [options] USERNAME

修改用户账号信息:

usermod

 -u 改用户id

 -g GID 改基本组

 -G 改附加组。会覆盖之前的附加组

 -a -G 一起使用,追加附加组

 -c 注释信息

 -d 改家目录。改后无法访问之前家目录中的文件

 -d -m 移动此前文件至新家目录中

 -s 改shell

 -l 改用户名

 -L 锁定账号

 -U 解锁账号

chsh 改用户默认shell

 chsh USERNAME

chfn 改注释信息

 chfn USERNAME

passwd [USERNAME] 管理员才可指定用户

 --stdin 从标准输入读取 如echo “Redhat” | passwd user --stdin

 -l 锁定账号

 -u 解锁账号

 -d 删除密码。(红帽禁止空密码用户登录)

 -n 密码最短使用期限 -x -w -i  

pwck 检查用户账号完整性

chage  

 -d 最近一次的修改时间

 -E 过期时间

 -I 非活动时间

 -m 最短使用期限

 -M 最长使用期限

 -w 警告时间

组管理命令:

groupadd、groupdel、groupmod、gpasswd

groupadd 创建组

 -d 指定id。默认上一个组往下加一

 -r 添加为系统组

groupmod 改组信息

 -g GID

 -n GRPNAME改组名

groupdel 删除组

gpasswd 给组加密码

newgrp 临时登录更改用户基本组。可用exit退出

加用户 可直接改passwd shadow group三个文件

权限管理:

chown、chgrp、chmod、umask

04_02权限及权限管理

x:可执行

三类用户:

o: 其它用户

chown:改变文件属主。(只有管理员可以使用此命令)

# chown USERNAME file,...

-R 修改目录及其内部文件的属主

--reference=/path/to/somefile  [-R] file,...  参考。把后面的文件的属主属组都 改为和第一个一样

# chown [USERNAME] :GRPNAME 可用此命令同时改属主数组。不加用户时可只改属组

chgrp:

#chgrp GRPNAME file,...

--reference=/path/to/somefile

chmod 修改文件的权限

修改三类用户观的权限:

 chmod MODE file,... 三位数字,少了默认前面补0

  -R 修改目录及其内部文件的权限

  --reference=/path/to/somefile  [-R]  

修改某类用户或某些类用户权限:

 u,g,o,a(all)

 chmod 用户类别=MODE chmod g=rw[-] 没给出的可用省略

  chmod go=r  

  chmod g=rx,o= file  

修改某类用户某位或某些位权限:

 u,g,o,a(all)

 chmod 用户类别+|- MODE file,...

  chmod u+x,g-x file  

  chmod [a]+wx file

1、新建一个没有家目录的用户openstack

2、复制/etc/skel为/home/openstack

3、改变/home/openstack及其内部文件的属主属组均为openstack

4、/home/openstack及其内部文件,属组和其它用户没有任何访问权限

su - openstack

ls -l /etc/shadow  

权限400 :

 权限设置对管理员没有用

 普通用户为啥能改密码?ls -l `which passwd` 属主有个s权限

bc:计算器 q退出

scal=2:保留两位小数

openssl passwd 可用生成加密密码

whatis passwd 查看有sslpasswd

man sslpasswd

openssl passwd -1(这是一) -salt '12345678’(八位)

umask :遮罩码(一般用户默认002,root022)

创建文件:666-umask 默认不能有执行权限,如果算得结果有执行权限,则将其权限加1:

创建目录 777-umask  

站在用户登录的加偶来说,shell的类型:

登录式shell:

 正常通过某终端登录

 su - USERNAME

 su -l USERNAME

非登录式shell:

 su USERNAME

 图形终端下打开命令窗口

 自动执行的shell脚本

bash的配置文件:

 /etc/profile,/etc/profile.d/*.sh,/etc/bashrc

 ~/.bash_profile,~/.bashrc

profile类的文件:

设定环境变量(个人和全局冲突时,以个人为准)

运行命令或脚本

bashrc类的文件

设定本地变量

定义命令别名

登录式shell如何读取配置文件?

/etc/profile ——> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc--> /etc/bashrc

非登录式shell如何读取配置文件?

~/.bashrc--> /etc/bashrc --> /etc/profile.d/*.sh


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK