文件 inode block
文件属性 文件内容-数据
目录 目录属性 目录下的文件名及文件的inode号码
block的位置
文件 一般可以给的最大权限 666 rw-rw-rw-
目录 一般可以给的最大权限 777 rwxrwxrwx
查看当前系统默认的权限
[root@manager ~]$ umask 0022
文件默认的权限644 ?
文件最大权限 666 -022=644
目录默认的权限 755 ?
目录最大权限 777-022=755
umask 是032
文件默认的权限 666-032=634
目录默认的权限 777-032=745
umask 是035 file? dir?
创建一个文件要求默认权限是000, 目录默认权限是111 问 umask 是多少?

单机站点 权限设置

网站程序存放的位置
/app/blog 站点目录
网站要通过什么用户运行 www (虚拟用户)
创建环境:
[root@manager ~]$ mkdir -p /app/blog/uploads [root@manager ~]$ touch /app/blog/{ink.mv,jun.mp4,ping,toorent,jpg10g.torrent} [root@manager ~]$ ll /app/blog/ total 0 -rw-r--r--. 1 root root 0 Dec 11 15:09 ink.mv -rw-r--r--. 1 root root 0 Dec 11 15:09 jpg10g.torrent -rw-r--r--. 1 root root 0 Dec 11 15:09 jun.mp4 -rw-r--r--. 1 root root 0 Dec 11 15:09 ping -rw-r--r--. 1 root root 0 Dec 11 15:09 toorent drwxr-xr-x. 2 root root 6 Dec 11 15:08 uploads [root@manager ~]$ useradd www [root@manager ~]$ su - www [www@manager ~]$ cd /app/blog/ [www@manager /app/blog]$ ll total 0 -rw-r--r--. 1 root root 0 Dec 11 15:09 ink.mv -rw-r--r--. 1 root root 0 Dec 11 15:09 jpg10g.torrent -rw-r--r--. 1 root root 0 Dec 11 15:09 jun.mp4 -rw-r--r--. 1 root root 0 Dec 11 15:09 ping -rw-r--r--. 1 root root 0 Dec 11 15:09 toorent drwxr-xr-x. 2 root root 6 Dec 11 15:08 uploads [www@manager /app/blog]$ touch uploads/project.doc touch: cannot touch ‘uploads/project.doc’: Permission denied
1、 给uploads 目录 o+w (给的权限太大)
2、修改uploads所有者和用户组(实际工作环境)
3、给用户加入到root 用户组 (给的权限太大)
4、sudo
5、suid
[root@manager ~]$ ll -d /app/blog/uploads/ drwxr-xrwx. 2 root root 6 Dec 11 15:08 /app/blog/uploads/ [root@manager ~]$ chown www.www /app/blog/uploads/ [root@manager ~]$ ll -d /app/ drwxr-xr-x. 3 root root 18 Dec 11 15:08 /app/ [root@manager ~]$ ll -d /app/blog/uploads/ drwxr-xrwx. 2 www www 6 Dec 11 15:08 /app/blog/uploads/ [root@manager ~]$ chmod o-w /app/blog/uploads/ [root@manager ~]$ ll -d /app/blog/uploads/ drwxr-xr-x. 2 www www 6 Dec 11 15:08 /app/blog/uploads/
[root@manager ~]$ chown .www /app/blog/uploads/
[root@manager ~]$ ll -d /app/blog/uploads/
drwxr-xr-x. 2 www www 6 Dec 11 15:08 /app/blog/uploads/
系统所有用户分为
root uid=0
虚拟用户 /sbin/nologin
普通用户 uid >=1000 (c6 >=500) /bin/bash
对于某一个文件来说所有用户可以分为几类:所有者 所属组 其它 电脑
Linux 隐藏属性
lsattr list attr 显示隐藏属性
chattr change
[root@manager ~]$ lsattr /exam/exam.txt ---------------- /exam/exam.txt (Centos7) (Centos 6.x)有个e
a append 只能追加
[root@manager /exam]$ lsattr exam.txt ---------------- exam.txt [root@manager /exam]$ chattr +a exam.txt [root@manager /exam]$ lsattr exam.txt -----a---------- exam.txt
i immutable 不被毁灭的 无敌的
[root@manager /exam]$ ll /bin/rm -rwxr-xr-x. 1 root root 62864 Apr 11 2018 /bin/rm [root@manager /exam]$ chmod u+s /bin/rm chmod 4755 /bin/rm [root@manager /exam]$ ll /bin/rm -rwsr-xr-x. 1 root root 62864 Apr 11 2018 /bin/rm [root@manager /exam]$ stat /bin/rm File: ‘/bin/rm’ Size: 62864 Blocks: 128 IO Block: 4096 regular file Device: fd00h/64768d Inode: 100665384 Links: 1 Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:bin_t:s0 Access: 2019-12-11 03:45:01.878357424 -0500 Modify: 2018-04-11 00:35:02.000000000 -0400 Change: 2019-12-11 15:33:34.483375810 -0500 Birth: - [root@manager /exam]$ umask 0022 [root@manager /exam]$ chmod u-s /bin/rm [root@manager /exam]$ ll /bin/rm -rwxr-xr-x. 1 root root 62864 Apr 11 2018 /bin/rm
Linux特殊权限
作用:运行某一个命令的时候相当于这个命令的所有者(root)
rpm -qa cronie 查看软件包是否安装
rpm -ql cronie 查看软件包里有什么
[root@manager /exam]$ rpm -qa cronie cronie-1.4.11-19.el7.x86_64 [root@manager /exam]$ rpm -ql cronie /etc/cron.d /etc/cron.d/0hourly /etc/cron.deny /etc/pam.d/crond /etc/sysconfig/crond /usr/bin/crontab /usr/lib/systemd/system/crond.service /usr/sbin/crond /usr/share/doc/cronie-1.4.11 /usr/share/doc/cronie-1.4.11/AUTHORS /usr/share/doc/cronie-1.4.11/COPYING /usr/share/doc/cronie-1.4.11/ChangeLog /usr/share/doc/cronie-1.4.11/INSTALL /usr/share/doc/cronie-1.4.11/README /usr/share/man/man1/crontab.1.gz /usr/share/man/man5/crontab.5.gz /usr/share/man/man8/cron.8.gz /usr/share/man/man8/crond.8.gz /var/spool/cron
yum yellowdog 软件包管理命令 替你下载 替你安装
-y 都选择 yes
yum install -y tree
yum repolist 显示系统yum 源
yum provides 查询命令属于哪个软件包
no package anxxx
rpm 软件包管理命令 手动安装
-qa 查询软件是否安装
-ql 查询软件包内容
-ivh 安装
-qf 文件或命令绝对路径 查询文件或命令属于哪个软件包
-e eraser 删除某个软件包
[root@manager /exam]$ rpm -qf `which ifconfig` net-tools-2.0-0.22.20131004git.el7.x86_64
Linux系统的定时任务
/etc/cron.hourly/ 系统定时任务每小时运行这个目录里的内容
/etc/cron.daily/ 系统定时任务每天运行这个目录里的内容
/etc/cron.weekly/ 系统定时任务每周运行这个目录里的内容
/etc/cron.monthly 系统定时任务每月运行这个目录里的内容
/etc/cron.deny 定时任务的黑名单
/etc/crontab 系统定时任务的配置文件之一
系统定时任务+ logrotate 命令完成对日志的切割/日志轮询
[root@manager /exam]$ ll /var/log/messages /var/log/secure -rw-------. 1 root root 30662 Dec 11 15:14 /var/log/messages -rw-------. 1 root root 4990 Dec 11 15:14 /var/log/secure [root@manager /exam]$ ll /var/log/messages* /var/log/secure* -rw-------. 1 root root 30662 Dec 11 15:14 /var/log/messages -rw-------. 1 root root 25011 Nov 17 03:01 /var/log/messages-20191117 -rw-------. 1 root root 281438 Nov 24 03:01 /var/log/messages-20191124 -rw-------. 1 root root 68264 Dec 1 03:01 /var/log/messages-20191201 -rw-------. 1 root root 409014 Dec 8 03:01 /var/log/messages-20191208 -rw-------. 1 root root 4990 Dec 11 15:14 /var/log/secure -rw-------. 1 root root 1133 Nov 12 13:04 /var/log/secure-20191117 -rw-------. 1 root root 8166 Nov 21 14:09 /var/log/secure-20191124 -rw-------. 1 root root 1077 Nov 30 22:01 /var/log/secure-20191201 -rw-------. 1 root root 14056 Dec 8 03:15 /var/log/secure-20191208 [root@manager /exam]$ cat /etc/logrotate.d/syslog /var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler { missingok sharedscripts postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true endscript }
用户定时任务
crontab cron table 用户定时任务管理命令
crontab -l (list) 列表 查看用户的定时任务 cron table
crontab -e (edit)编辑用户的定时任务
visudo === /etc/sudoers
/var/spool/cron/root (root 是用户名 root 用户的定时任务)
一个命令 + 一个目录
crontab /var/spool/cron
crontab -l ===== cat /var/spool/cron/root (root用户)
crontab -e ===== vi /var/spool/cron/root (root用户)
检查定时任务当前是否运行
[root@manager /exam]$ ps -ef |grep crond
root 825 1 0 Dec02 ? 00:00:01 /usr/sbin/crond -n
root 6374 4131 0 15:59 pts/1 00:00:00 grep --color=auto crond
[root@manager /exam]$ systemctl is-active crond.service
active
检查定时任务是否开机运行
[root@manager /exam]$ systemctl is-enabled crond.service
enabled
[root@manager /exam]$ tail -f /var/lo local/ lock/ log/ [root@manager /exam]$ tail -f /var/log/secure Dec 11 03:33:34 manager sshd[28197]: pam_unix(sshd:session): session closed for user root Dec 11 03:33:34 manager sshd[11482]: pam_unix(sshd:session): session closed for user root Dec 11 03:33:34 manager su: pam_unix(su-l:session): session closed for user us01 Dec 11 14:46:36 manager sshd[2699]: Accepted password for root from 10.74.144.167 port 50925 ssh2 Dec 11 14:46:36 manager sshd[2699]: pam_unix(sshd:session): session opened for user root by (uid=0) Dec 11 15:10:29 manager useradd[3904]: new group: name=www, GID=1104 Dec 11 15:10:29 manager useradd[3904]: new user: name=www, UID=1104, GID=1104, home=/home/www, shell=/bin/bash Dec 11 15:10:33 manager su: pam_unix(su-l:session): session opened for user www by root(uid=0) Dec 11 15:14:31 manager sshd[4126]: Accepted password for root from 10.74.144.167 port 52952 ssh2 Dec 11 15:14:32 manager sshd[4126]: pam_unix(sshd:session): session opened for user root by (uid=0)
[root@manager /exam]$ systemctl is-active crond.service rsyslog.service active active [root@manager /exam]$ systemctl start crond.service rsyslog.service [root@manager /exam]$ systemctl enable crond.service rsyslog.service

分 时 日 月 周
每天的上午8点30分到公司上班 (go to work)
30 08 * * * go to work
每天晚上12点加家 (go home)
00 12 * * * go home
第周日的晚上12点准时睡觉 (go to bed)
00 12 * * 00 go to bed
* 12 * * 00 go to bed
修改系统时间
[root@manager /exam]$ date -s '20111111 11:11:11' Fri Nov 11 11:11:11 EST 2011 [root@manager /exam]$ date -s '20111111' Fri Nov 11 00:00:00 EST 2011
[root@manager /]# ntpdate ntp1.aliyun.com 20 Sep 17:33:17 ntpdate[177736]: step time server 120.25.115.20 offset -27192.744941 sec [root@manager /]# date 2019年 09月 20日 星期五 17:33:22 CST
定时任务1,每分钟中步系统时间
ntpdate ntp1.aliyun.com
第一步:命令
[root@manager ~]# date -s '20111111 11:11:11' Fri Nov 11 11:11:11 CST 2011 [root@manager ~]# date Fri Nov 11 11:11:13 CST 2011 [root@manager ~]# ntpdate ntp1.aliyun.com 12 Dec 21:05:43 ntpdate[1362]: step time server 120.25.115.20 offset 255174828.476377 sec [root@manager ~]# date Thu Dec 12 21:05:51 CST 2019
第二步:写入定时任务
[root@manager ~]# date -s '20111111 11:11:11' Fri Nov 11 11:11:11 CST 2011 [root@manager ~]# crontab -e no crontab for root - using an empty one crontab: installing new crontab [root@manager ~]# crontab -l #sync time ntp * * * * * /usr/sbin/ntpdate ntp1.aliyun.com [root@manager ~]# tail -f /var/log/cron Nov 11 11:14:13 manager crontab[1434]: (root) END EDIT (root) Nov 11 11:15:01 manager crond[537]: (root) RELOAD (/var/spool/cron/root) Nov 11 11:15:01 manager CROND[1441]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com) Dec 12 21:19:06 manager CROND[1440]: (root) MAIL (mailed 90 bytes of output but got status 0x004b#012) Dec 12 21:19:06 manager CROND[1445]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com) Dec 12 21:19:12 manager CROND[1444]: (root) MAIL (mailed 85 bytes of output but got status 0x004b#012) Dec 12 21:20:01 manager CROND[1451]: (root) CMD (/usr/lib64/sa/sa1 1 1) Dec 12 21:20:01 manager CROND[1452]: (root) CMD (/usr/sbin/ntpdate ntp1.aliyun.com)
[root@manager ~]# which ntpdate
/usr/sbin/ntpdate
[root@manager ~]# which ntpdate
/usr/sbin/ntpdate
定时任务 定时任务格式
检查软件是否安装,是否运行,是否开机自启动
权限
permission denied 错误
文件和目录 rwx
Linux 系统默认的权限 umask
通过权限控制让系统安全
隐藏属性
浙公网安备 33010602011771号