命令替换

把字符串里面的命令先执行再把该字符串输出,与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】,现在介绍一种常用的用法【用于目录】:

公司现在多个程序员开发一个网站,每个人都有自己登陆服务器的账号,要求是项目目录下的文件每个人都共享,就是在该目录下可以互相编辑每个文件,不管是谁开发的

解决方法:

  1. 每个用户的基本组都相同,这样创建的文件基本组也都一样【添加一个附加组是不行的,那样每个用户再创建文件时属组是不一样的】

    注意:用户有基本组和附加组usermod进行修改;文件和目录只有一个属组,默认是用户的基本组,chown进行修改,在这容易混淆

  2. 添加一个附加组【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、特殊权限的更多相关文章

  1. Ubuntu chmod 命令修改文件chmod读写权限

    Ubuntu chmod 命令可以用来修改文件或文件夹的读写权限 chmod 命令有两种使用方式 一. chmod [u/g/o/a] [+/-/=] [r/w/x] filename [ ]里都代表 ...

  2. /文件和目录权限chmod /更改所有者和所属组chown/umask/隐藏权限lsattr/chattr

    2.14 文件和目录权限chmod 2.15 更改所有者和所属组chown2.16 umask2.17 隐藏权限lsattr/chattr 文件和目录权限chmod 文件权限: r     4     ...

  3. ubuntu 下修改文件访问权限chmod 777 -R *血的教训!没事别乱开权限!用谁开谁的就行。。。最后不要用这个命令,文件操作全部改用终端

    本文转自: 个人建议 Ubuntu下修改目录权限命令如下:chmod 600 name (只有所有者有读和写的权限)chmod 644 name (所有者有读和写的权限,组用户只有读的权限)chmod ...

  4. 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 ...

  5. Linux的文件访问权限及修改权限命令chmod

    http://www.linuxso.com/command/chmod.html Linux的文件访问权限及修改权限命令chmod Mxx000 Mxx000 人赞同了该文章 Linux的文件访问权 ...

  6. Linux命令行–理解Linux文件权限(转)

    6.1.1 /etc/passwd文件 /etc/passwd:包含系统用户账户列表以及每个用户的基本配置信息 每个条目有七个字段,每个字段用冒号隔开 登录用户名 用户密码 用户账户的UID 用户账户 ...

  7. 第3章 Linux常用命令(2)_权限管理命令

    2. 权限管理命令 2.1 改变文件或目录权限:chmod (1)chmod命令 命令名称 chmod(change the permission mode of a file) 命令所在路径 /bi ...

  8. root运行/media可运行文件权限不够,chmod改动权限无效

    http://blog.csdn.net/pipisorry/article/details/39649699 问题: 我想运行media目录下自己写的某个程序,但无法运行? 1. 于是我以root的 ...

  9. [转]linux如何修改文件或目录的权限(chmod)

    linux如何修改文件或目录的权限(chmod) chmod命令是linux上用于改变权限的命令,-R 是递归遍历子目录,因为你要操作的文件使用的*通配符.777,第一个7代表文件所属者的权限,第二个 ...

随机推荐

  1. php __DIR__ 解释下

    __DIR__, php5.3 才增加的这个魔术常量,表示当前文件所在的目录地址. php5.3之前用dirname(__FILE__);表示__DIR__; __FILE__这个表示当前文件的路径.

  2. 【BIM】BIMFACE中创建疏散效果

    背景 在BIM运维中,消防疏散是不可或缺的一环,当发生火警的时候,触发烟感器发生报警,同时启动消防疏散,指导现场工作人员进行疏散,及时准确地显示出疏散路线对争取疏散时间尤为重要.我将介绍如何在bimf ...

  3. webpack配置示例

    var webpack = require('webpack'); var commonsPlugin = new webpack.optimize.CommonsChunkPlugin('commo ...

  4. pythone 时间模块

    时间模块(时区) 计算方式:时间戳是一串数字,从计算机诞生的那一秒到现在过了多少秒,每过一秒+1 #时间戳#由时间戳获取格式化时间#由格式化时间获取时间戳 import time def timene ...

  5. 登陆ECP后,无法正常现实OU

    当我们在ECP创建邮箱账户或者会议室的时候,发现无法预览所有OU信息 这是因为,默认情况下,Exchange只能识别到500个OU,如果要解决这个问题就需要我们到后端服务器修改配置文件 文件路径:C: ...

  6. 当Spring Cloud Alibaba Sentinel碰上Spring Cloud Sleuth会擦出怎样的火花

    前言 今年主要会做一个比较完整的微服务项目开源出来.目前已经开始了,刚兴趣的先Star一个吧. 项目:https://github.com/yinjihuan/kitty-cloud 基础框架:htt ...

  7. 津津的储蓄计划 NOIp提高组2004

    这个题目当年困扰了我许久,现在来反思一下 本文为博客园ShyButHandsome的原创作品,转载请注明出处 右边有目录,方便快速浏览 题目描述 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津\ ...

  8. 【Java】从Null开始,在Windows上下载和安装JDK

    下载部分: 方式一: 从官方网站上下载:https://www.oracle.com/java/technologies/javase-downloads.html Oracle已经更新了软件政策,要 ...

  9. Extjs入门——环境配置

    Extjs框架作为一个07年就上线的框架,虽然与现在的框架对比,显得十分臃肿.但是在针对企业内部引用系统上,它依旧能发挥出不错的效果.现在我接触到了Extjs,所以我准备写一个入门框架,简单的介绍Ex ...

  10. C#_关键字:Lock的解释和使用

    定义 lock关键字,互斥锁,通过锁住某一对象从而将语句块({})里面的代码设置为临界区. 线程在线性执行代码时若遇到互斥锁,必须先申请互斥锁的访问权,若访问成功,则继续线性访问互斥锁后的临界区代码块 ...