首页 文章 精选 留言 我的

精选列表

搜索[centos],共5623篇文章
优秀的个人博客,低调大师

CentOS常用基本命令 ln

这篇博客讲解Linux链接文件 ln。 Linux链接文件类似于Windows下的快捷方式 链接文件分为软链接和硬链接。 软链接:软链接不占用磁盘空间,源文件删除则软链接失效。 硬链接:硬链接只能链接普通文件,不能链接目录。 使用格式: ln 源文件 链接文件 ln -s 源文件 链接文件 如果 没有 -s 选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在的,所以-s 选项是更常见的形式。 注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。 软链接例:在目录A下面有一个a.txt 文件,里面有内容"hello world ,hello bo!" 。使用ln -s a.txt softlink_a.txt 命令生成一个链接文件softlink_a.txt(下图中淡蓝色文件),使用cat 命令查看文件内容"hello world ,hello bo" ,之后使用 mv 命令删除掉源文件 a.tx t。使用 ls 命令发现softlink_a.txt文件变成红色。在次使用 cat 命令查看softlink_a.txt内容时出现 “No such file or directory”,说明该链接已经失效。 硬链接例:在目录A下创建一个b.txt,写入内容“hello ,I am b.txt!” ,之后使用命令 lnb.txt hardlink_b.txt 。查看hardlink_b.txt,与b.txt内容相同。这个时候修改hardlink_b.txt,查看hardlink_b.txt内容“hello ,I am b.txt!I am old file!”。在查看b.txt,内容与hardlink_b.txt文件相同,可见该文件的内容也得到修改。使用 rm b.txt 删除b.txt。 这个时候在查看hardlink_b.txt,内容依旧不变。 原理图: 上图中 a.txx 指向文件中的数据,软链接softlink_a.txt 指向 a.txt。所以当a.txt 删除后,软链接失效。硬链接handlink_a.txt同样指向数据块,所以,当a.txt文件删除后,handlink_a.txt依旧指向文件中的数据。

优秀的个人博客,低调大师

Centos7搭建vsftpd服务

注意:此教程针对的是单一用户的ftp 安装vsftpd yum -y install vsftpd 修改vsftpd的配置文件 vim /etc/vsftpd/vsftpd.conf 修改: anonymous_enable=NO //修改为NO chroot_list_enable=YES //去掉前面的#号 chroot_list_file=/etc/vsftpd/chroot_list //去掉前面的#号 ascii_upload_enable=YES //去掉前面的#号 ascii_download_enable=YES //去掉前面的#号 anon_umask=033 //修改权限 添加: allow_writeable_chroot=YES //在末尾添加 cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,RNFR,RNTO,RETR,SIZE,TYPE,USER,ACCT,STOR,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST 注意:这里设置权限可以上传,下载,重命名,替换,删除空文件夹,但不可以删除文件,想实现不同权限请参考(http://blog.csdn.net/zqjzqjzqj/article/details/51201132) 创建ftp用户 useradd -s /sbin/nologin bing //用户名为bing passwd bing //修改密码 注意:ftp用户的主目录默认在/home/用户名/下面 增加ftp安全性(因为ftp的用户可以访问其他目录,需要对其作出限制) touch /etc/vsftpd/chroot_list //chroot_list的用户不能离开ftp的主目录 cut -d : -f 1 /etc/passwd>>/etc/vsftpd/chroot_list // 把本地用户都加入到chroot_list 防火墙开放ftp,使系统不用完全关闭防火墙 firewall-cmd --add-service=ftp --permanent firewall-cmd --reload firewall-cmd --list-services //查看ftp是否开放 配置selinux 允许ftb访问home和外网访问 getsebool -a | grep ftp //查看setenforce的ftp布尔值 setsebool -P allow_ftpd_full_access on setsebool -P ftpd_connect_all_unreserved on 启动并设置开机自启 service vsftpd restart systemctl enable vsftpd.service 最后:如果云服务器搭建ftp,在Windows端访问,需要设置以下步骤,局域网访问则不用 注意:第一个方框勾上,第二个则取消,这个蛋疼的解决方法大概是因为服务器端ftp为主动模式,客户端也需要设置为主动模式 还有另一个方法并没有尝试,设置服务器端ftp为被动模式,防火墙和selinux开放ftp被动模式的端口

优秀的个人博客,低调大师

Centos7设置磁盘限额

注意:需要在配置文件/etc/fstab,defaults 后面那加上usrquota和grpquota “,”隔开 如: /dev/sdb1 /mnt/daobin ext4 defaults,usrquota,grpquota 0 0 mount命令先挂载上去 mount /dev/sdb1 /mnt/daobin mount -o remount /mnt/daobin //不用重启系统了 查看是否挂载上去 mount |grep daobin 使用quotacheck命令创建配额文件 quotacheck -ugcv /dev/sdb1 ls /mnt/daobin //创建出aquota.group和aquota.user为成功 创建文件配额用户 useradd daobin 使用edquota命令设置配额 edquota -u daobin //回车以后 会弹出配置文件 说明:第一个soft表示磁盘容量软限制 第二个soft表示文件个数软限制 ,第一个hard表示磁盘容量硬限制第二个hard表示文件个数硬限制 注意:只用修改这四个对应的参数,其他默认不动 如:下面修改容量软限制为80M 容量硬限制为100M 文件个数软限制为2 文件个数硬限制为3 注意对齐 然后保存退出 Disk quotas for user daobin (uid 1000): ##不要复制进去 Filesystem block soft hard innodes soft hard /dev/sdb1 0 8000100000 023 启用文件系统的配额功能 quotaon -ugv /mnt/daobin 修改权限 不然之后验证会提示权限不够 chmod 777 /mnt/daobin 切换用户 在/mnt/daobin中创建文件进行验证 su - daobin cd /mnt/daobin touch 1 2 3 //创建文件验证 ls 注意:1 2 3都被创建了 但是第三个文件时系统提示 达到了文件个数软限制 touch 4 //第四个文件 系统提示无法创建 ls //查看只有1 2 3文件 磁盘配额实验完成

优秀的个人博客,低调大师

Centos7搭建Hadoop服务

下载Hadoop 官网:http://hadoop.apache.org/releases.html 先配置jdk环境(教程:https://www.idaobin.com/archives/117) 下载以后 解压到到/usr/local tar -zxvf hadoop-2.8.0.tar.gz -C /usr/local 为了方便操作 把hadoop-2.8.0 改为hadoop mv /usr/local/hadoop-2.8.0 /usr/local/hadoop 查看主机名 hostname //第一个参数为主机名 检查是否可以免密码 ssh localhost //这里的localhost为主机名 注意:一般初次安装都需要密码 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 再次验证 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 注意:如没有Enter password 就说明免密码了 配置环境变量 vim /etc/profile 末尾添加 export HADOOP_HOME=/usr/local/hadoop export PATH=$JAVA_HOME/bin:$PATH:$HOME/bin:$HADOOP_HOME/bin 使环境变量立即生效 source /etc/profile 创建Hadoop的临时文件存放地 mkdir /usr/local/hadoop/tmp 编辑Hadoop的配置文件 cd /usr/local/hadoop/etc/hadoop/ vim hadoop-env.sh 末尾添加 export JAVA_HOME=/usr/local/java/jdk1.8.0_131/ export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop 注意:路径要对 使环境变量立即生效 source hadoop-env.sh 配置另一个文件 vim core-site.xml 在<configuration></configuration>中添加以下内容 <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop/tmp</value> </property> 配置下一个文件 hdfs-site.xml vim hdfs-site.xml 在<configuration></configuration>中添加以下内容 <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/tmp/dfs/data</value> </property> 配置下一个文件mapred-site.xml 因为这个文件默认不存在 我们把mapred-site.xml.template作为模板来配置 cp mapred-site.xml.template mapred-site.xml vim mapred-site.xml 在<configuration></configuration>中添加以下内容 <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> 配置下下个文件yarn-site.xml vim yarn-site.xml 在<configuration></configuration>中添加以下内容 <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> 配置最后一个文件yarn-env.sh vim yarn-env.sh 注意:在第23行左右 export JAVA_HOME (删除# 去掉注释),并更改正确jdk的路径 格式化namenode cd /usr/local/hadoop bin/hdfs namenode-format 注意:成功的话,会看到 “successfully formatted” 和 “Exitting withstatus 0” 的提示,若为 “Exitting with status 1” 则是出错了 通过脚本启动hdfs sbin/start-dfs.sh 打开浏览器访问http://localhost:50070,验证是否hdfs配置成功 再来启动yarn sbin/start-yarn.sh 打开浏览器访问http://localhost:8088,验证yarn是否配置成功 注意:由于浏览器存在缓存问题 打开地址可能会失败关闭浏览器 重新打开一两次就好,如果还是失败 检查配置文件是否有误 查看已启动的hadoop进程 jps 注意:如果没有 NameNode 或 DataNode ,那就是配置不成功

优秀的个人博客,低调大师

Centos7增加swap分区

注意:(Redhat5官方推荐)RAM<=4G,swap=2G;RAM>4G,<16G,swap=4G;RAM>16G,<64G,swap=8G;RAM>64G,<256G,swap=16G (Redhat6/7官方推荐)RAM<=2G,swap=2*RAM;RAM>2G,<8G,swap=RAM;RAM>8G,<64G,swap>=4G;RAM>=64G,swap>=4G;(休眠状态另外考虑) 添加swap有两种方式:1、添加swap分区;2、添加swap文件;此教程采用方法1,方法2在(https://www.idaobin.com/archives/345) 添加swap空间可用于解决系统物理内存占用过高,导致部分服务被强制关闭的问题 在关机状态下,添加一块200M(0.2G)的硬盘 查看swap大小 free -m //或者 cat /proc/meminfo | grep -i swap 或者 fdisk -l 或者swap -s 查看新添加的硬盘 这里新添加的磁盘是sdb(看容量可知) cat /proc/partitions 创建分区 并设置为swap格式 fdisk /dev/sdb n //创建分区 p //创建主分区 1 //创建分区1 两次回车 //起始扇区和Last扇区选择默认 t //转换分区格式 82 //转换为swap空间 p //查看已创建的分区结果 w //保存退出 格式化为swap空间 mkswap /dev/sdb1 启用swap swapon /dev/sdb1 编辑配置文件 设为开机自动挂载 vim /etc/fstab 添加以下内容 保存并退出 /dev/sdb1 swap swap defaults 0 0 设置自动启用所有swap空间 swapon -a 重启验证 reboot 再次查看swap大小 free -m //或者 cat /proc/meminfo | grep -i swap 或者 fdisk -l 或者swap -s 注意:可以看出来swap已经发生变化了

优秀的个人博客,低调大师

CentOS7上安装Jenkins

前言 最近学习Jenkins,第一步就是安装Jenkins了,有相关的文档也看到官网上有详细的安装步骤内心满是欢喜觉得一定是很顺利就可以安装上,过程中“惊喜”不断。 步骤 前提:安装jenkins之前需要安装好JDK 方法一 官网上有详细的关于此的安装步骤,附上链接https://pkg.jenkins.io/redhat-stable/ 可以通过yum来安装 [plain]view plain copy sudowget-O/etc/yum.repos.d/jenkins.repohttps://pkg.jenkins.io/redhat-stable/jenkins.repo sudorpm--importhttps://pkg.jenkins.io/redhat-stable/jenkins.io.key yuminstalljenkins sudoservicejenkinsstart//启动jenkins服务 过程中如果出现以下错误 [plain]view plain copy Startingjenkins(viasystemctl):Jobforjenkins.servicefailed.See'systemctlstatusjenkins.service'and'journalctl-xn'fordetails.[FAILED] 检查自己的JDK是否安装,如果已经安装,检查 /etc/init.d/Jenkins 文件(可通过vi编辑器修改)中JDK路径是否与本地路径一致,不一致则将Java的正确路径加入。 终于到启动jenkins这一步了,并且也启动成功了 接下来就是访问网址,本地访问http://localhost:8080 但是问题就出现了 才疏学浅,查了资料也没有解决问题,防火墙也开放了这个端口,后来索性把虚拟机恢复到上次备份的状态,重新照此步骤安装,安装了好几次仍是如此,没有办法就换了一种方法。 方法二 先在官网上下载好rpm包,下载地址方法一中已经介绍了,上传到虚拟机上。我下载的是jenkins-2.9-1.1.noarch.rpm 安装rpm包 执行命令 rpm -ivhenkins-2.9-1.1.noarch.rpm 接下来的步骤就和方法一中的步骤相同了,就不再重复赘述了。 启动之后访问http://ip:端口/jenkins即可访问,出现下图: 找到之后输入,进入选择插件安装界面选择我选的第一个 接下来进入创建第一个用户界面 创建用户之后就可以使用jenkins了。 小结 虽然最终安装成功并且可以访问了,但是第一种方法遇到的错误还是没有搞明白是怎么回事儿。

优秀的个人博客,低调大师

CentOS下Find命令详解整理

locate 搜索命令 使用: #yuminstall-ymlocate安装 updatedb 生成db数据库,服务器不建议在工作时间生成,使用计划任务在凌晨启动 #find/etc/-name'sshd*'模糊搜索,搜索/etc目录下name为sshd的文件或目录 #find/etc/-typed-name"sshd*"模糊搜索,只搜索/etc目录下name为sshd的目录 #find/etc/-typef-name"sshd*"模糊搜索,只搜索/etc目录下name为sshd的文件 -type l 为连接文件 -type b 为block块设备 #stat 2.txt 查看 2.txt的time状态信息 参数: atime = access time 访问时间 mtime = modify time 创建(修改)时间 ctime = change time 改动时间 更改了文件内容,ctime一定会发生改变 查看文件内容,access会发生改变 实例: #find/etc/-typef-mtime-1 #一天以内/etc目录下修改过的文件 #find/etc/-typef-mtime+1 #一天前的/etc目录下修改过的文件 #find/etc/-typef-mtime+1-name"*.conf" #一天前的/etc目录下名为.conf且修改过的文件 #find/etc/-typef-o-mtime+1-o-name"*.conf" #一天前的/etc目录下名为.conf且修改过的文件如上两个“-o”均是或的意思 #find/etc/-typef-mmin-200 #200分钟以内/etc目录下修改过的文件 #find/etc/-typef-mmin-200-execls-l{}\; #200分钟以内/etc目录下修改过的文件, - exec 是指:执行 ls -l命令, {}表示对列出的结果再次交给 ls 一条条的执行 #find/etc/-typef-mmin-200-execmv{}{}.bak\; #然后对符合条件的文件全部改名为.bak 在日常工作中会用到 find 去查找Size大于多少多少的文件或者目录时 #find/etc/-typef-size-10M-execls-lh{}\; #列出来在/etc目录下类型为文件且大于10M的并ls-lh显示其详细信息

优秀的个人博客,低调大师

CentOS下经常使用的命令

经常使用的命令: #查看端口被占用情况 netstat -tunlp|grep 22 #查看java进程 ps -ef|grep java #压缩前端工程 rar a -ep1 ./update/win32.zip ./packages/**/win32/* #查找所有带wine的文件和文件夹 find / -name *wine* #重载环境变量的文件 source /etc/profile #查看进程的内存映像信息 pmap -d 1 #查看内存占用最多的10个进程 ps -aux | sort -k4nr | head -10 #修改目录权限 sudo chown -R docker /usr/local #获取网页信息 curl www.baidu.com Linux #修改目录权限 chmod 777 /home/user Linux基本目录: 目录存放文件,文件存放数据 bin: 存放了2进制文件,所有用户都可以使用 sbin:存放只有root用户可以使用的命令 boot:存放了系统的启动文件,200m——300M dev:ram相当与内存 sda第一块硬盘sda1分区 etc:存放了各种系统文件(相当于Windows中C盘的Windows) home:存放普通用户的用户资料和信息,1024M root:存放了root用户的用户资料和信息 media:存放了一些外接设备的文件夹 tmp:当前系统上正在运行的资料(内存) usr:普通用户安装的一些应用程序 var:当前系统上所运行的一些服务 seLinux:类似于防火墙,存放各种日志文件 学习笔记: 调出命令行:应用下;右击鼠标 #root权限 date 查看时间 cal 查看月历 cal 1 2013 cd /切换到根目录 cd root 后面接明确的路径 pwd 显示当前所在位置 cd ..表示上一级菜单 cd .刷新当前目录 cd -返回 cd --直接返回+目录 ls 查看当前目录包含的内容 ls -a查看当前目录包含的隐藏文件 前面有点 ls -l查看当前文件的所用属性 cat 查看文件的内容 cat --help当前目录包含的 tac 文件从下网上显示 head 默认只看文件前10行的内容 tail 默认只看文件的最后10行 cat > test 结束编辑 CTRL+D cat test > test2 把test文件的内容覆盖到test2 cat test test2 > test3 把test和test2合并到test3中 cp 复制 cp test3 / 先写要复制的项目,在写复制到的位置 mv /test3 /root/desktop/ 剪切到桌面 rm 删除 要写完整的小写的yes 永久删除,回收站中没用 touch:创建之后,不能对文件进行编辑 mkdir 创建一个空目录 查看CPU:lscpu ls命令详解: 第一个字节:[-]表示文件,[d]表示目录,[l]表示链接文件,[b]表示装置文件里面的可供存储的借口设备,[c]表示装置文件里面的串行端口设备 中间9个字节:前3个字节:创建人的权限 中间3个字节:群组的权限 最后3个字节:其他用户权限 su - 加上用户名 :可以切换到其他的用户 对于一个目录的执行权限表示能否进入到该目录 创建用户 useradd redhat(用户名) 删除用户 userdel redhat [ 1]将本次启动设为单用户模式 passwd修改密码 init 5回到图形化界面 vim /boot/grub/grub.conf grub-md5-crypt vim 编辑器 yy p 快速的进行复制 y4y p复制4行 u取消前面的操作 shift+; 光标移动到最下面 底行模式 set nu显示每行的行号 16+enter 跳到16行 i 表示在当前位置插入 a 在当前位置的下一个字符插入 o 另起一行在进行编辑 命令行模式 |shift+;| 底行模式 a i o | 编辑模式 回到底行模式 wq保存 退出 chattr +a grub.conf给文件添加a的隐藏属性 chattr -a 把a的隐藏属性去掉 chattr +i 只读 chown (用户名) (文件名) 修改文件拥有者 chgrp 修改组的 chmod o+w hello 对other增加可写的属性 u:用户 g:组o:其他用户 chmod 762 hello rwx 421相互对应

优秀的个人博客,低调大师

熟悉CentOS系统日志,screen工具

/var/log/messages是系统总日志,包含系统,运行时的消息状态,网络错误都会记录到这个文件中。他会隔一段时间自动切割(logrotate)。 [root@shuai-01 ~]# ls /var/log/messages* /var/log/messages /var/log/messages-20171128 /var/log/messages-20171113 /var/log/messages-20171203 /var/log/messages-20171120 logrotate自动切割日志,配置文件(/etc/logrotate.conf) [root@shuai-01 ~]# cat /etc/logrotate.conf # see "man logrotate" for details # rotate log files weekly weekly //每周切割 # keep 4 weeks worth of backlogs rotate 4 //保留4个 # create new (empty) log files after rotating old ones create //创建新文件 # use date as a suffix of the rotated file dateext //后缀名 # uncomment this if you want your log files compressed #compress //压缩 # RPM packages drop log rotation information into this directory include /etc/logrotate.d //其他配置文件 # no packages own wtmp and btmp -- we'll rotate them here /var/log/wtmp { monthly create 0664 root utmp minsize 1M rotate 1 } /var/log/btmp { missingok monthly create 0600 root utmp rotate 1 } # system-specific logs may be also be configured here. 命令:dmesg 作用:显示系统启动信息 查看登录系统的信息: 命令:last 调用日志文件:/var/log/wtmp 查看登录时的详细信息,登录日期,时长,终端,账户名 命令:lastb 调用日志文件:/var/log/btmp 显示账户登录失败的信息 screen工具 执行一个脚本,需要它连续不间断运行。加上&,将脚本放在后台运行,但是退出终端时,脚本也可能会退出。这时有两种方法,一种是nohup运行脚本,一种是screen工具。 1. 使用nohup 运行脚本时前面加上 nohup sh /usr/local/sbin/sleep.sh & 2.screen工具 screen类似于一个虚拟终端。 安装screen命令: [root@shuai-01 ~]# yum install -y screen 直接运行screen进入虚拟终端 运行脚本, 退出screen(Ctrl+a ,在按d) 在虚拟终端下结束(exit) 查看以打开的screen会话:screen -ls 打开某个screen会话:screen -r ID 给虚拟终端创建时起个名字:screen -S “test_screen”

优秀的个人博客,低调大师

CentOS目录与文件权限分析

如果说在Java世界中,万物皆对象,那么在Linux世界中,可以说万物皆文件。Linux文件一般分为两种,一般文件和目录文件。文件权限对于数据安全至关重要,有必要清楚的知道一般文件权限和目录文件权限的意义。 权限对文件的重要性 文件是实际含有数据的地方,包括一般文本文件、数据库内容档、二进制可可执行文件(binary program)等等。 因此,权限对于文件来说,它的意义是这样的: r(read):可读取此一文件的实际内容,如读取文本文件的文字内容等; w(write):可以编辑、新增或者是修改该文件的内容(但不含删除该文件); x(eXecute):该文件具有可以被系统执行的权限。 可读(r)代表读取文件内容比较好理解,那么可执行(x)呢?因为在Windows下面一个文件是否具有执行的能力是借由“ 扩展名 ”来判断的, 例如:.exe,.bat, .com 等等,在Linux下面,我们的文件是否能被执行,则是借由是否具有“x”这个权限来决定的!跟文件名是没有绝对的关系的!至于最后一个w这个权限呢?当你对一个文件具有w权限时,你可以具有写入/编辑/新增/修改文件的内容的权限,但并不具备有删除该文件本身的权限!对于文件的rwx来说, 主要都是针对“文件的内容”而言,与文件文件名的存在与否没有关系!因为文件记录的是实际的数据! 权限对目录的重要性 文件是存放实际数据的所在,那么目录主要是储存啥玩意?目录主要的内容在记录文件名清单,文件名与目录有强烈的关连! 所以如果是针对目录时,那个 r, w, x 对目录是什么意义呢? r(read contents in directory): 表示具有读取目录结构清单的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来! w(modify contents of directory): 这个可写入的权限对目录来说,是很了不起的! 因为它表示你具有异动该目录结构清单的权限,也就是下面这些权限: 创建新的文件与目录; 删除已经存在的文件与目录(不论该文件的权限为何!) 将已存在的文件或目录进行更名; 搬移该目录内的文件、目录位置。 总之,目录的w权限就与该目录下面的文件名异动有关就对了啦! x(access directory): 那么,目录的执行权限有啥用途啊?目录只是记录文件名而已,总不能拿来执行吧?没错!目录不可以被执行,目录的x代表的是使用者能否进入该目录成为工作目录的用途!所谓的工作目录(work directory)就是你目前所在的目录啦!举例来说,当你登陆Linux时, 你所在的主文件夹就是你当下的工作目录。而变换目录的指令是“cd”(changedirectory)! 现在假设“文件是一堆文件数据夹”,所以你可能可以在上面写/改一些数据。而“目录是一堆抽屉”,因此你可以将数据夹分类放置到不同的抽屉去。 因此抽屉最大的目的是拿出/放入数据夹喔!现在让我们汇整一下数据: 元件 内容 叠代物件 r w x 文件 详细数据data 文件数据夹 读取文件内容 修改文件内容 执行文件内容 目录 文件名 可分类抽屉 读到文件名 修改文件名 进入该目录的权限(key) 根据上面的分析,可以看到,对一般文件来说,rwx 主要是针对“文件的内容”来设计权限,对目录来说,rwx则是针对“目录内的文件名列表”来设计权限。 其中最有趣的大概就属目录的x 权限了!“文件名怎么执行”?没道理嘛!其实,这个 x 权限设计,就相当于“该目录,也就是该抽屉的 "钥匙" ”啦! 没有钥匙你怎么能够打开抽屉呢?对吧! 具体实例 例1:有个目录的权限如下所示: drwxr--r-- 3 root root 4096 Jun 25 08:35 test 系统有个帐号名称为hah,这个帐号并没有支持root群组,请问hah对这个目录有何权限?是否可切换到此目录中?答:hah对此目录仅具有r的权限,因此hah可以查询此目录下的文件名列表。因为hah不具有x的权限,亦即hah没有这个抽屉的钥匙啦!因此hah并不能切换到此目录内! 上面这个例题中因为hah具有r的权限,因为是r乍看之下好像就具有可以进入此目录的权限,其实那是错的。 能不能进入某一个目录,只与该目录的x权限有关啦!此外, 工作目录对于指令的执行是非常重要的,如果你在某目录下不具有x的权限, 那么你就无法切换到该目录下,也就无法执行该目录下的任何指令,即使你具有该目录的r或w的权限。 例2:假设有个帐号名称为xixi,他的主文件夹在/home/xixi/,xixi对此目录具有[rwx]的权限。 若在此目录下有个名为the_root.data的文件,该文件的权限如下: -rwx------ 1 root root 4365 Sep 19 23:20 the_root.data 请问xixi对此文件的权限为何?可否删除此文件?答:如上所示,由于xixi对此文件来说是“others”的身份,因此这个文件他无法读、无法编辑也无法执行, 也就是说,他无法变动这个文件的内容就是了。但是由于这个文件在他的主文件夹下, 他在此目录下具有rwx的完整权限,因此对于the_root.data这个“文件名”来说,他是能够“删除”的! 结论就是,xixi这个用户能够删除the_root.data这个文件! 上述的例子解释是这样的,假设有个莫名其妙的人,拿着一个完全密封的数据夹放到你的办公室抽屉中,因为完全密封你也打不开、看不到这个数据夹的内部数据(对文件来说,你没有权限)。 但是因为这个数据夹是放在你的抽屉中,你当然可以拿出/放入任何数据在这个抽屉中(对目录来说,你具有所有权限)。 所以,情况就是:你打开抽屉、拿出这个没办法看到的数据夹、将他丢到走廊上的垃圾桶!搞定了

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册