命令替换、权限、chmod、特殊权限
命令替换
把字符串里面的命令先执行再把该字符串输出,与PHP的“”里面的变量被执行一样。
$(COMMAND)
`COMMAND`
[root@jiakang ~]# echo "The directory is $(pwd)"
The directory is /root
[root@jiakang ~]# touch ./file-$(date +%F-%H-%M-%S).txt
[root@jiakang ~]# ls
a install.log
anaconda-ks.cfg install.log.syslog
file-2017-03-30-19-52-22.txt
[root@jiakang ~]# echo "The directory is `pwd`"
The directory is /root
权限
文件:
r:可读,可以用类似cat等命令查看文件内容
w:可写,可以编辑或删除此文件
x:可执行,可以命令提示符下当作命令提交给内核运行
目录:
r:可以对此目录执行ls列出内部所有文件
w:可以在此目录创建文件
x:可以使用cd切换进此目录,也可以使用ls -l查看详细信息
用数字表示:
0 000 ---:无权限
1 001 --x:执行
2 010 -w-:写
3 011 -wx:写和执行
4 100 r--:读
5 101 r-x:读和执行
6 110 rw-:读和写
7 111 rwx:读写执行
chmod命令
修改文件的权限
修改三类用户的权限
chmod MODE file
-R
--reference=/path/somefile file 参考修改【修改和前面的somefile的权限一样】
[root@jiakang tmp]# chmod 057 yum.log
修改某类用户或某些类用户的权限
u,g,o,a
chmod 用户类别=MODE file,...
[root@jiakang tmp]# chmod u=rwx /tmp/yum.log
[root@jiakang tmp]# chmod g=r,o=r /tmp/yum.log
[root@jiakang tmp]# chmod go=r /tmp/yum.log
[root@jiakang tmp]# ls -l /tmp/yum.log
-rwxr--r--. 1 tom root 0 3月 25 07:01 /tmp/yum.log
修改某类用户的某位或者某些位的权限
u,g,o,a
chmod 用户类别+|-MODE file
[root@jiakang tmp]# chmod go+w /tmp/yum.log
[root@jiakang tmp]# ls -l /tmp/yum.log
-rwxrw-rw-. 1 tom root 0 3月 25 07:01 /tmp/yum.log
[root@jiakang tmp]# chmod +x /tmp/yum.log
[root@jiakang tmp]# ls -l /tmp/yum.log
-rwxrwxrwx. 1 tom root 0 3月 25 07:01 /tmp/yum.log
特殊权限(难)
SUID:运行某程序时,相应的进程的属主是文件自身的属主,而不是启动者;
chmod u+s FILE
chmod u-s FILE
如果该FILE本身原来有执行权限则SUID显示为s,原来没有执行权限显示为S
注意:SUID用于二进制可执行文件,对目录和非二进制可执行文件没什么意义
【现在rm的权限】
[root@jiakang tmp]# ls -l /bin/rm
-rwxr-xr-x. 1 root root 58960 10月 15 2014 /bin/rm
[root@jiakang tmp]# ls -l abc
-rw-r--r--. 1 root root 0 4月 2 19:55 abc
【普通用户删除abc】
[jiakang@jiakang ~]$ rm /tmp/abc
rm:是否删除有写保护的普通空文件 "/tmp/abc"?y
rm: 无法删除"/tmp/abc": 不允许的操作
【给rm添加s权限,注意看我当前操作的用户】
[root@jiakang tmp]# ls -l /bin/rm
-rwsr-xr-x. 1 root root 58960 10月 15 2014 /bin/rm
【再次删除,没有abc文件了】
[jiakang@jiakang ~]$ rm /tmp/abc
[jiakang@jiakang ~]$ ls /tmp
def keyring-V2LdqH rc.d
inittab keyring-ydeVD8 rc.local
SGID:运行某程序时,相应的进程的属组是文件自身的属组,而不是启动者所属的基本组;
用法和上面的一样【g+s , g-s】,现在介绍一种常用的用法【用于目录】:
公司现在多个程序员开发一个网站,每个人都有自己登陆服务器的账号,要求是项目目录下的文件每个人都共享,就是在该目录下可以互相编辑每个文件,不管是谁开发的
解决方法:
每个用户的基本组都相同,这样创建的文件基本组也都一样【添加一个附加组是不行的,那样每个用户再创建文件时属组是不一样的】
注意:用户有基本组和附加组usermod进行修改;文件和目录只有一个属组,默认是用户的基本组,chown进行修改,在这容易混淆添加一个附加组【developteam】,把该目录【project】的GID加s权限,在该目录下创建的文件的基本组就会是该目录的基本组【developteam】而非用户本身的基本组,这样每个文件的组都相同了,文件可以相互访问
[root@jiakang tmp]# groupadd developteam
[root@jiakang tmp]# mkdir /tmp/project
[root@jiakang tmp]# chown -R :developteam /tmp/project【修改属组】
[root@jiakang tmp]# chmod g+s project【加SGID】
[root@jiakang tmp]# ls -ld project
drwxr-sr-x. 2 root developteam 4096 4月 11 13:04 project
[root@jiakang tmp]# usermod -a -G developteam jiakang【追加附加组developteam】
[root@jiakang tmp]# id jiakang
uid=500(jiakang) gid=500(jiakang) 组=500(jiakang),5001(developteam)
[root@jiakang tmp]# chmod g+w project【组内用户+w权限】
[jiakang@jiakang tmp]$ cd project
[jiakang@jiakang project]$ touch ss.txt
touch: 无法创建"ss.txt": 权限不够
[jiakang@jiakang project]$ exit【需要退出重新登陆才能生效】
logout
[root@jiakang ~]# su - jiakang
[jiakang@jiakang project]$ touch s.txt
[jiakang@jiakang project]$ ls -l s.txt
-rw-rw-r--. 1 jiakang developteam 0 4月 11 13:26 s.txt【属组自动就是developteam】
sticky:在上面创建的那个公共目录里,每个用户都能创建、删除自己的文件,但是不能删除他人的文件
chmod o+t DIR
chmod o-t DIR
这样权限修改的时候用数字表示就又多了一位:
000
001【o+t】
011【g+s,o+t】
...111【u+s,g+s,o+t】
chmod 5755 /tmp/test【5代表:u+s,o+t】
umask 0022 也是同理
命令替换、权限、chmod、特殊权限的更多相关文章
- Ubuntu chmod 命令修改文件chmod读写权限
Ubuntu chmod 命令可以用来修改文件或文件夹的读写权限 chmod 命令有两种使用方式 一. chmod [u/g/o/a] [+/-/=] [r/w/x] filename [ ]里都代表 ...
- /文件和目录权限chmod /更改所有者和所属组chown/umask/隐藏权限lsattr/chattr
2.14 文件和目录权限chmod 2.15 更改所有者和所属组chown2.16 umask2.17 隐藏权限lsattr/chattr 文件和目录权限chmod 文件权限: r 4 ...
- ubuntu 下修改文件访问权限chmod 777 -R *血的教训!没事别乱开权限!用谁开谁的就行。。。最后不要用这个命令,文件操作全部改用终端
本文转自: 个人建议 Ubuntu下修改目录权限命令如下:chmod 600 name (只有所有者有读和写的权限)chmod 644 name (所有者有读和写的权限,组用户只有读的权限)chmod ...
- Ubuntu上使用过的命令,Linux常用命令,mount 硬盘挂载, ls 列表list命令,cp 复制copy命令,mkdir 创建文件夹 ,nano 编辑器,cat 文档合并,chmod 文件权限,ssh win10连接ubuntu服务器的步骤
man 帮助 > man ls # ubuntu的帮助 tar.gz 压缩解压 > tar -zcvf yzn.tar.gz /home/yzn # 压缩 > tar -zxvf y ...
- Linux的文件访问权限及修改权限命令chmod
http://www.linuxso.com/command/chmod.html Linux的文件访问权限及修改权限命令chmod Mxx000 Mxx000 人赞同了该文章 Linux的文件访问权 ...
- Linux命令行–理解Linux文件权限(转)
6.1.1 /etc/passwd文件 /etc/passwd:包含系统用户账户列表以及每个用户的基本配置信息 每个条目有七个字段,每个字段用冒号隔开 登录用户名 用户密码 用户账户的UID 用户账户 ...
- 第3章 Linux常用命令(2)_权限管理命令
2. 权限管理命令 2.1 改变文件或目录权限:chmod (1)chmod命令 命令名称 chmod(change the permission mode of a file) 命令所在路径 /bi ...
- root运行/media可运行文件权限不够,chmod改动权限无效
http://blog.csdn.net/pipisorry/article/details/39649699 问题: 我想运行media目录下自己写的某个程序,但无法运行? 1. 于是我以root的 ...
- [转]linux如何修改文件或目录的权限(chmod)
linux如何修改文件或目录的权限(chmod) chmod命令是linux上用于改变权限的命令,-R 是递归遍历子目录,因为你要操作的文件使用的*通配符.777,第一个7代表文件所属者的权限,第二个 ...
随机推荐
- 下载安装配置 Spark-2.4.5 以及 sbt1.3.8 打包程序
文章更新于:2020-03-29 按照惯例,文件附上链接放在文首. 文件名:spark-2.4.5-bin-without-hadoop.tgz 文件大小:159 MB 下载链接:https://mi ...
- Windows 手动安装 Apache24 web服务器
文章更新于:2020-02-18 按照惯例,需要的文件附上链接放在文首 文件名:httpd-2.4.41-o111c-x64-vc15-r2.7z 文件大小:6.1MB 下载链接:https://ww ...
- 操作文件-取出一个60s内log日志中ip访问次数超过100次的ip
import timea=0while True: d={} f = open(r"/Users/**juan/Downloads/access.log",encoding=&qu ...
- Node教程——API接口开发(MangoDB+Express)
一.大纲 大纲: 关于架构, 首先我们的有一个app.js这个就是根路由起点,用来最初的打入口 它的功能有: 1.1 引入模块创建基础的网站服务器, 1.2 导入bodyPasser,过滤还有处理我们 ...
- 01-启动jmeter目录功能
1.bin :存储了jmeter的可执行程序,如启动脚本.配置程序 docs: api扩展文档存放 lib: lib\ext 存储了jmeter的整合的功能(如.jar文件程序,和第三方 ...
- Java入门系列之线程池ThreadPoolExecutor原理分析思考(十五)
前言 关于线程池原理分析请参看<http://objcoding.com/2019/04/25/threadpool-running/>,建议对原理不太了解的童鞋先看下此文然后再来看本文, ...
- Pormetheus(一)
(1)Prometheus由来普罗米修斯的灵感来自于谷歌的Borgmon.它最初是由马特·t·普劳德(Matt T. Proud)作为一个研究项目开发的,普劳德曾是谷歌(google)的一名雇员.在普 ...
- webWMS开发过程记录(三)- 需求分析(略)
行业:汽车零部件制造 大方向:非唯一码,需有一套简单.易用.受控的误操作撤回机制 现状(略) 目标(略) 注:由于项目是自己根据以往经验,自己开发的,且开发时间不固定,故需求分析暂略,我会把工作重点放 ...
- Python—一个简单搜索引擎索引库
因为课业要求,搭建一个简单的搜索引擎,找了一些相关资料并进行了部分优化(坑有点多) 一.数据 数据是网络上爬取的旅游相关的攻略页面 这个是travels表,在索引中主要用到id和url两个字段. 页面 ...
- 最长上升子序列 HDU 1025 Constructing Roads In JGShining's Kingdom
最长上升子序列o(nlongn)写法 dp[]=a[]; ; ;i<=n;i++){ if(a[i]>dp[len]) dp[++len]=a[i]; ,dp++len,a[i])=a[i ...