linux用户权限及常用文件命令

用户及组管理

id user1     #查看用户user1
useradd user1    #创建新用户user1,useradd命令用于Linux中创建的新的系统用户账号,再用passwd设定帐号的密码。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

passwd user1     #设定user1的用户密码

userdel -r user1   #删除用户user1
gpasswd -a user1 root      #把用户user1加入root组
gpasswd -d user1 root     #把root组中用户user1删除

groupadd mysql         #创建mysql用户组 

 

su命令——用户切换

格式:su 【options】 【用户名】       

options如下:

-              用户想要切换到root

-l             后面可以接用户名,可使用变换身份者的所有相关环境设置文件

-m           使用当前环境设置,而不重新读取新用户的设置文件

-c             仅进行一次命令,所以-c后面可以加命令

ls命令查看文件权限

格式:ls(选项)(目标文件)                

终端输入:ls -l shell.text

显示:-rw-r--r-- 1 root root 0 Oct 19 12:21 shell.txt

注释:红色部分代表:所有者,rw(读写)权限。

         黄色部分代表:所属组,r(只读)的权限。

         蓝色部分代表:其他用户,r(只读)的权限。 

chmod修改文件权限

u           即文件或目录的拥有者;

g           即文件或目录的所属群组;

o           其他用户;

a           所有用户(默认);

r           读取,数字代号为“4”;

w          写入,数字代号为“2”;

x           执行或切换,数字代号为“1”;

-           不具任何权限,数字代号为“0”;

s           特殊功能说明:变更文件或目录的权限。

chmod u+x file                       给file的属主增加执行权限
chmod 751 file                    给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
chmod u=rwx,g=rx,o=x file            上例的另一种形式
chmod =r file                       为所有用户分配读权限
chmod -R u+r directory              递归地给directory目录下所有文件和子目录的属主分配读的权限
chmod 4755                            设置用ID,给属主分配读、写和执行权限,给组和其他用户分配读、执行的权限。

文件ACL,访问控制列表

传统的权限仅有三种身份(owner,group,others)搭配三种权限(r,w,x),随着应用的发展,这些权限组合已不能适应现在复杂的文件系统权限控制要求。(对于一个文件,有一个用户不是所有者、也不在所有者组,然后单独给他设置权限,而不影响 其他用户)
 例如,目录data的权限为:drwxr-xr—x,所有者与所属组均为root,在不改变所有者和所属组的前提下,要求用户test对该目录有完全访问权限(rwx),但又不能让其他有用完全权限(rwx),这种情况就只能使用acl访问控制列表权限来控制了。
 
命令:
getfacl:查看文件或目录的ACL设定内容
setfacl:设置文件或目录的ACL内容
 
命令格式:
# setfacl  [选项]  要修改的权限  文件
命令选项:
-m :添加acl参数
-x :删除acl参数
-b :删除所有的ACL设定参数
-R :递归设置acl参数
 
设置格式如下
# setfacl -m u:test:rw 1.txt          --为文件1.txt设置test用户可读写的acl权限
# mkdir /test/a -p
# cd /test
# touch 1.txt
 # ll
总用量 0
-rw-r--r-- 1 root root 0 7月   8 21:41 1.txt
drwxr-xr-x 2 root root 6 7月   8 21:39 a
 
开启另一个终端,并切换之test用户测试1.txt是否可写
 
设置用户ACL权限
# setfacl -m u:user1:rwx 1.txt          多个用户用逗号隔开
# getfacl 1.txt
# file: 1.txt
# owner: root
# group: root
user::rw-
user:test:rwx                这里可以看到刚刚设置的acl权限
group::r--
mask::rwx
other::r--       
# setfacl -m m::r 1.txt                设置ACL的mask          (mask 掩码:允许的最高acl权限)      
# file: 1.txt                                  查看1.txt的权限和之前有什么不同
# owner: root
# group: root
user::rw-
user:test:rwx               #effective:r--          这里会有一个警告,因为acl的权限大于了掩码的最高权限,此时的test用户依旧不可写
group::r--
mask::r--
other::r--
# setfacl -m d:user1:rw a/                          为目录设置默认ACL权限,设置后,在该目录内创建的文件依然继承该acl
# mkdir b
# touch b/1.txt
# touch a/1.txt
# getfacl a/1.txt
# file: a/1.txt
# owner: root
# group: root
user::rw-
user:test:rw-
group::r-x               #effective:r--
mask::rw-
other::r--
# getfacl b/1.txt
# file: b/1.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--
# setfacl -x u:user1 1.txt                   删除ACL权限
# setfacl -b 1.txt
# mkdir /test/b                                  递归设置acl参数
# touch /test/b/1.txt
# setfacl -m u:user1:rw /test/b
# getfacl /test/b
# file: b/
# owner: root
# group: root
user::rwx
user:user1:rw-
group::r-x
mask::rwx
other::r-x
# getfacl /test/b/1.txt
# file: b/1.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--
# setfacl -Rm u:user1:rw /test/b               递归设置acl权限后,目录下所有内容均会拥有相同的acl权限
# file: b/1.txt
# owner: root
# group: root
user::rw-
user:user1:rw-
group::r--
mask::rw-
other::r--

cp命令———复制文件或目录命令。

格式:cp [选项] 源文件或目录 目标文件或目录  

选项:

-r               用于目录的复制操作。

-f               不询问用户,强制复制。

-i               若目标文件存在,则询问是否覆盖。

-p              与文件属性一起复制。

-l 或 --link             对源文件建立硬连接,而非复制文件。

-v              详细显示进行的步骤。

mv命令———移动文件或目录、重命名命令。

格式:mv [选项] 源文件或目录 目标文件或目录

选项:

-f               强制直接移动而不询问。

-i               若目标文件存在,则询问是否覆盖。

-u              若目标文件存在,且源文件比较新,就更新。

-v     详细显示进行的步骤。

rm命令———删除文件或目录命令。

格式:rm [选项] 文件...

选项:

-f               强制删除

-i               交互模式,在删除前会询问用户是否操作

-r              递归删除,常用于目录删除

-v              详细显示进行的步骤。

file命令———显示指定文件类型,它是通过文件头部信息获取文件类型,也可用来辨别一些文件的编码格式。

格式:file [参数] 目标文件                         

(-)     普通文件

(d)     目录

(|)     符号连接

(c)     字符设备文件

(b)     快设备文件

(s)     套接字

(p)     命名管道

wget 命令

格式:wget  http://url            #直接下载目标文件

wget参数:

-O      下载到指定路径并改名;格式:wget -O 指定路径文件名 http://url

--spider         爬虫;检查网站是不是好的,不会下载。

-T         指定超时时间,单位秒。

--tries=2      指定重试的次数。

curl 命令

是一个利用 URL 规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称 curl 为下载工具。作为一款强力工具,curl 支持包括 HTTP、HTTPS、ftp 等众多协议,还支持 POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。
格式:curl  http://url     #不下载,而是打印网页源代码在屏幕上

curl 参数

-I (大写的 'i')            打印响应的头信息

-L                                 跟随服务重定向,跳转到新的页面

which命令

which命令的功能是查找非内置命令(程序)的所在路径。which 命令,搜索的范围来自环境变量 PATH  。

所以一个命令(程序)在Linux里面放哪了,可以用 which 查 。

命令(程序)在 Linux 是以文件的形式的存放着,如果没有 which 命令,

也可以用 find / -type f -name "命令"  查找,但要自己判断命令(程序)和配置文件的区别。

环境变量 PATH 

PATH 系统路径变量,存放着非内置命令的所在路径,其配置文件是 /etc/profile 。

配置文件是 /etc/profile 很重要,因为系统快速调用命令都要通过这个变量,如果改错了,可能导致很多非内置命令用不了。

当文件被赋予 chmod +x 文件名 可执行权限时,那它所在的路径自动存放到环境变量 $PATH 里面了,可以用 which 命令查到。

whereis 命令

whereis 命令用于搜索二进制程序,包括未把路径存进环境变量的程序。

posted @ 2020-03-20 14:27  兰昌  阅读(1525)  评论(0编辑  收藏  举报