开发者社区> 余二五> 正文

linux用户和文件目录管理

简介:
+关注继续查看

Linux用户及权限管理


用户管理 

多用户多任务的操作系统 


用户类型

管理员用户 root

普通用户

系统用户/程序用户


用户相关的文件:


/etc/passwd 用户信息 

格式:

用户名:x:UID:GID:说明信息:SHELL

UID:

1000---60000

0---999 系统用户 

SHELL:

/bin/bash 默认 

/sbin/nologin 系统用户 

/etc/shadow 用户密码信息



用户:

基本组

附加组 用户userA -----> 用户组userA;    caiwu, shichang, jishu, yanfa 



1、创建用户 


# useradd [option] 用户名称


option选项:



1) -u UID  指定用户的uid


[root@node01 ~]# useradd -u 2000 user2

[root@node01 ~]# id user2

uid=2000(user2) gid=2000(user2) 组=2000(user2)

[root@node01 ~]# 


2) 指定用户的基本组、附加组


-g gid/组名称

-G gid/组名称,... 


[root@node01 ~]# groupadd caiwu

[root@node01 ~]# useradd -g user1 -G caiwu user3

[root@node01 ~]# 

[root@node01 ~]# id user3

uid=2001(user3) gid=1001(user1) 组=1001(user1),2001(caiwu)



3) 指定用户shell名称 


-s shell名称

-M 不创建宿主目录 


[root@node01 ~]# useradd -s /sbin/nologin -M apache



4) 创建系统用户


-r 


[root@node01 ~]# useradd -r mysql



5) 指定用户的宿主目录 


[root@node01 ~]# useradd -d /tmp/hadoop hadoop



2、切换用户


# su - 用户名称



3、查看用户id信息


[root@node01 ~]# id user1

uid=1001(user1) gid=1001(user1) 组=1001(user1)



[root@node01 ~]# id user3

uid=2001(user3) gid=1001(user1) 组=1001(user1),2001(caiwu)


[root@node01 ~]# id -u user3

2001

[root@node01 ~]# id -g user3

1001

[root@node01 ~]# id -G user3

1001 2001


[root@node01 ~]# id -u -n user3

user3

[root@node01 ~]# id -g -n user3

user1

[root@node01 ~]# id -G -n user3

user1 caiwu

[root@node01 ~]# 



4、设置用户密码 


# passwd [option] [用户名称]


[root@node01 ~]# passwd user1


1) 查看用户密码状态


[root@node01 ~]# passwd -S user1

user1 PS 2017-04-11 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)


2) 锁定用户密码(不能登录)


[root@node01 ~]# passwd -l user1

锁定用户 user1 的密码 。

passwd: 操作成功

[root@node01 ~]# passwd -S user1

user1 LK 2017-04-11 0 99999 7 -1 (密码已被锁定。)


3) 解锁用户密码


[root@node01 ~]# passwd -u user1

解锁用户 user1 的密码。

passwd: 操作成功

[root@node01 ~]# passwd -S user1

user1 PS 2017-04-11 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

[root@node01 ~]# 


4) 强制用户密码过期


[root@node01 ~]# passwd -e user1

正在终止用户 user1 的密码。

passwd: 操作成功



5、修改用户信息


# usermod [option] 用户名称


-u UID 

-g 组名称

-G 组名称

-s shell名称

[root@node01 ~]# usermod -aG caiwu user3

[root@node01 ~]# id user3

uid=2001(user3) gid=1001(user1) 组=1001(user1),2001(caiwu),2004(shichang)



6、删除用户


# userdel [option] 用户名称 


[root@node01 ~]# userdel user1


[root@node01 ~]# userdel -r user2 >>>同时删除用户的宿主目录



用户组管理


1、创建用户组


# groupadd 用户组名称 


2、删除用户组 


# groupdel 用户组名称 



[root@node01 ~]# groupadd jishu

[root@node01 ~]# useradd tom

[root@node01 ~]# useradd mike

[root@node01 ~]# useradd jerry


[root@node01 ~]# usermod -G jishu tom

[root@node01 ~]# usermod -G jishu jerry

[root@node01 ~]# usermod -G jishu mike

 

[root@node01 ~]# grep "jishu" /etc/group

jishu:x:2005:tom,jerry,mike


[root@node01 ~]# gpasswd -d tom jishu

正在将用户“tom”从“jishu”组中删除


[root@node01 ~]# grep "jishu" /etc/group

jishu:x:2005:jerry,mike

[root@node01 ~]# 





用户操作环境配置文件:


从/etc/skel目录复制而来


[root@node01 ~]# ls -a /home/userA/

.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla



.bashrc 打开新终端 /etc/bashrc

.bash_profile 用户登录系统 /etc/profile

.bash_logout 注销系统



示例:设置命令别名 


# alias 命令别名='命令'


针对单个用户设置别名:


[root@node01 ~]# vim /home/userA/.bashrc 

alias ipshow='cat /etc/sysconfig/network-scripts/ifcfg-eth0'


[root@node01 ~]# source /home/userA/.bashrc



针对所有用户设置别名:


[root@node01 ~]# vim /etc/bashrc 

alias ipshow='cat /etc/sysconfig/network-scripts/ifcfg-eth0'


[root@node01 ~]# source /etc/bashrc 







文件目录权限管理


常规权限:

r read 读取  4

w write 写入 2

x execute 执行 1


文件:

r 查看文件内容(cat/more/less/head/tail/grep)

w 编辑文件内容(vim)

x shell/python脚本

目录:

r 查看目录下的文件(ls /tmp)

w 修改目录下的文件(新建、删除、mv)

x 切换目录(cd)



查看文件权限


[root@node01 ~]# ls -l /etc/fstab 

-rw-r--r--. 1 root root 465 7月  28 2016 /etc/fstab



查看目录权限 


[root@node01 ~]# ls -ld /etc/

drwxr-xr-x. 136 root root 8192 4月  11 13:48 /etc/



设置文件目录权限 


1) chmod 修改权限


# chmod {augo}{+-=}{rwx} 文件名称 


a all  所有

u user 属主用户

g group   属组

o other 其他


[root@node01 ~]# chmod a+x /test/1.txt 

[root@node01 ~]# chmod g=rw /test/3.txt 



# chmod nnn 文件名称 


[root@node01 ~]# chmod 600 /test/4.txt 



2) 修改文件的属主、属组 


# chown 用户名称.用户组名称  文件名称 


[root@node01 ~]# chown user1.caiwu /test/1.txt 


[root@node01 ~]# chown user1 /test/2.txt 


[root@node01 ~]# chown root.caiwu /test/4.txt 


仅修改属组:


# chgrp 用户组名称 文件名称 


[root@node01 ~]# chgrp caiwu /test/3.txt 



方法2) facl ---- 文件访问控制列表 


设置权限:


针对单个用户设置权限 


# setfacl -m u:用户名:权限 文件名称 


[root@node01 ~]# setfacl -m u:user4:r /test/3.txt 


[root@node01 ~]# getfacl /test/3.txt 

getfacl: Removing leading '/' from absolute path names

# file: test/3.txt

# owner: user1

# group: user3

user::rw-

user:user4:r--

group::rwx

mask::rwx

other::r-x



针对单个用户组设置权限 


# setfacl -m g:用户组名称:权限 文件名称 



删除facl权限


针对单个用户删除权限


# setfacl -x u:用户名  文件名称 


[root@node01 ~]# setfacl -x u:user4 /test/3.txt 


针对单个用户组删除权限


# setfacl -x g:用户组名称  文件名称 



特殊权限:

suid 4

sgid 2

sticky bit  1 # chmod 644 file01  # chmod 6644 file02   # chmod 2700 


1、suid


作用:普通用户在执行命令期间,会临时获取到命令属主用户对操作系统的权限 


[root@node01 ~]# ls -l /usr/bin/passwd 

-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd


设置suid权限 

# chmod u+s 文件名称 



2、sgid


针对目录设置 

作用:目录拥有sgid权限后,在目录下新创建的文件会继承目录的属组信息

设置sgid权限 


# chmod g+s 目录名称 


[root@node01 ~]# ls -ldh /linux/

drwxr-sr-x. 2 root caiwu 18 4月  11 15:37 /linux/

3、sticky bit 


针对目录设置 

作用: 

只有目录下文件的属主用户、目录属主用户及root可删除该文件 


[root@node01 ~]# ls -ldh /tmp/

drwxrwxrwt. 8 root root 4.0K 4月  11 15:45 /tmp/


设置sticky bit权限 


# chmod o+t 目录名称 


chmod, chown, chgrp, setfacl 


共同选项:-R 











本文转自 北冥有大鱼  51CTO博客,原文链接:http://blog.51cto.com/lyw168/1957697,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux之文件管理(一)
BASH SHELL对文件进行管理(一) 创建、复制、删除、移动、查看、编辑、压缩、查找 一切目录的起点都是 / 目录结构: ls / bin dev home lib64 mnt proc run srv tmp var boot etc lib media o...
813 0
Linux之文件管理(一)
BASH SHELL对文件进行管理(一) 创建、复制、删除、移动、查看、编辑、压缩、查找 一切目录的起点都是 / 目录结构: ls / bin dev home lib64 mnt proc run srv tmp var boot etc lib media o.
872 0
Linux磁盘分区,目录树,文件系统的关系(转)
  研究了很久,自始至终不能够从三者的区别和联系中找到一个大脑与这些概念之间合适的相处方式。对于基本概念和理论理解不到位,在工作之中会走很多弯路和犯很多错误。今天花一天的时间,终于对三者的区别和联系有了更进一步的理解,特此记录并分享之,供大家探讨交流。
1098 0
linux内存管理--用户空间和内核空间
关于虚拟内存有三点需要注意: 4G的进程地址空间被人为的分为两个部分--用户空间与内核空间。用户空间从0到3G(0xc0000000),内核空间占据3G到4G。用户进程通常情况下只能访问用户空间的虚拟地址,不能访问内核空间的虚拟地址。
744 0
linux->windows主动推送文件同步目录数据 linux-windows数据目录同步
1 .windows下安装openssh for windows工具,下载地址 https://www.mls-software.com/opensshd.html 2.修改openssh安装目录下etc/sshd_config 3.
1065 0
+关注
20377
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载