centos setuid(centos官网)
大家好,今天小编来为大家解答以下的问题,关于centos setuid,centos官网这个很多人还不知道,现在让我们一起来看看吧!
CentOS下CronTab任务周期计划详解
CronTab任务周期计划
格式:
***** command
分(0-59)、时(0-23)、日(1-31)、月(1-12)、周(0-6)
说明:
1、星号可以匹配所有字符
2、一个整数、必须精确匹配
3、用短划线隔开的两个整数,它们匹配的是值的范围。
4、时间范围后加斜扛和一个步长值。1-10/2
普通用户流程:
crontab-e crontab是设置了setuid的,所以用户具有他的权限也就是root,并会在/tmp/cron....文件处理后保存在/var/spool/cron/$username中。
日志:
/var/log/cron
配置目录:
/var/run/crond.pid进程号地址
/etc/crontab使用指导文件
/etc/$weekday.等分别时日月周的目录,即可以把脚本放进去他会按时执行。
/etc/cron.{deny,allow}拒绝和允许用户使用crontab
Vixie-Cron:
centos安装时会默认安装此包,此包可以包括一个步长值。也就是如1,3,6,9,12可以写成,1-12/3除以3。所谓的*/1*/2也就是每一分钟每两分钟运行command。即1-59/{2,3}。
%号的运用:
%百分号表示command中的换行,只有第一个百分号之前的文本才包含在实际命令中,其余的行则作为该命令的标准输入。
安装:
yum install-y crontabs
使用:
crontab--help
crontab-e#检出一个crontab副本,调用vi编辑它,并重新保存在crontab目录。
crontab-l#将crontab的内容打印到标准输出。
crontab-r#册除并不留任何内容。
......
root册除其它用户。
crontab-r$username
[root@nagios~]# crontab--help
crontab: invalid option--'-'
crontab: usage error: unrecognized option
usage:crontab [-u user] file
crontab [-u user] [-e|-l|-r ]
(default operation is replace, per 1003.2)
-e(edit user's crontab)
-l(list user's crontab)
-r(delete user's crontab)
-i(prompt before deleting user's crontab)
-s(selinux context)
[root@nagios~]# ll/usr/bin/crontab
-rwsr-xr-x 1 root root 47520 Jul 19 2011/usr/bin/crontab
[root@nagios~]# cat/var/run/crond.pid
2074
[root@nagios~]# ll/etc/|grep-E cron
drwxr-xr-x 2 root root 4096 Apr 2 00:59 cron.d
drwxr-xr-x. 2 root root 4096 Sep 27 2011 cron.daily
-rw-r--r-- 1 root root 0 Jul 19 2011 cron.deny
drwxr-xr-x 2 root root 4096 Sep 27 2011 cron.hourly
drwxr-xr-x 2 root root 4096 Sep 27 2011 cron.monthly
-rw-r--r-- 1 root root 457 Sep 27 2011 crontab
drwxr-xr-x 2 root root 4096 Sep 27 2011 cron.weekly
[root@nagios~]# cat/etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
#.---------------- minute(0- 59)
#|.------------- hour(0- 23)
#||.---------- day of month(1- 31)
#|||.------- month(1- 12) OR jan,feb,mar,apr...
#||||.---- day of week(0- 6)(Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
#|||||
#***** user-name command to be executed
[root@nagios~]# ll/var/spool/cron/
total 8
-rw------- 1 root root 60 Apr 2 01:33 root
-rw------- 1 zwhset zwhset 68 Apr 2 01:51 zwhset
[root@nagios~]# tail-5/var/log/cron
Apr 2 17:24:01 nagios CROND[20544]:(root) CMD(/bin/sh~/hello)
Apr 2 17:25:01 nagios CROND[20549]:(root) CMD(/bin/sh~/hello)
Apr 2 17:25:01 nagios CROND[20550]:(root) CMD(/bin/sh~/hello)
Apr 2 17:25:01 nagios CROND[20551]:(zwhset) CMD(echo hello~/1.txt)
Apr 2 17:25:01 nagios CROND[20552]:(zwhset) CMD(echo hello~/1.txt)
[root@nagios~]# ps aux|grep cron
root 2074 0.0 0.5 117212 1316? Ss 01:40 0:04 crond
root 20641 0.0 0.6 139684 1468 pts/1 S+ 17:30 0:00 crontab-e
zwhset 20642 0.0 0.7 119284 1756 pts/1 S+ 17:30 0:00/bin/vi/tmp/crontab.YphQpH
root 20663 0.0 0.3 103236 856 pts/0 S+ 17:31 0:00 grep cron
[root@nagios~]# lsof-c crontab
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
crontab 20641 root cwd DIR 253,0 4096 130818/root
crontab 20641 root rtd DIR 253,0 4096 2/
crontab 20641 root txt REG 253,0 47520 401259/usr/bin/crontab
crontab 20641 root mem REG 253,0 5952 261889/lib64/security/pam_deny.so
crontab 20641 root mem REG 253,0 18592 261891/lib64/security/pam_env.so
crontab 20641 root mem REG 253,0 18592 261903/lib64/security/pam_limits.so
crontab 20641 root mem REG 253,0 10224 261901/lib64/security/pam_keyinit.so
crontab 20641 root mem REG 253,0 10240 261906/lib64/security/pam_loginuid.so
crontab 20641 root mem REG 253,0 6040 261912/lib64/security/pam_permit.so
crontab 20641 root mem REG 253,0 14384 261923/lib64/security/pam_succeed_if.so
crontab 20641 root mem REG 253,0 10200 261905/lib64/security/pam_localuser.so
crontab 20641 root mem REG 253,0 51952 261929/lib64/security/pam_unix.so
crontab 20641 root mem REG 253,0 113432 261657/lib64/libnsl-2.12.so
crontab 20641 root mem REG 253,0 14456 261884/lib64/security/pam_access.so
crontab 20641 root mem REG 253,0 65928 261663/lib64/libnss_files-2.12.so
crontab 20641 root mem REG 253,0 99158576 397021/usr/lib/locale/locale-archive
crontab 20641 root mem REG 253,0 383504 261640/lib64/libfreebl3.so
crontab 20641 root mem REG 253,0 40400 261651/lib64/libcrypt-2.12.so
crontab 20641 root mem REG 253,0 1916568 261647/lib64/libc-2.12.so
crontab 20641 root mem REG 253,0 113096 261709/lib64/libaudit.so.1.0.0
crontab 20641 root mem REG 253,0 19536 261653/lib64/libdl-2.12.so
crontab 20641 root mem REG 253,0 55848 261879/lib64/libpam.so.0.82.2
crontab 20641 root mem REG 253,0 122040 261718/lib64/libselinux.so.1
crontab 20641 root mem REG 253,0 154464 261636/lib64/ld-2.12.so
crontab 20641 root 0u CHR 136,1 0t0 4/dev/pts/1
crontab 20641 root 1u CHR 136,1 0t0 4/dev/pts/1
crontab 20641 root 2u CHR 136,1 0t0 4/dev/pts/1
crontab 20641 root 3u unix 0xffff88000225c380 0t0 91831 socket
crontab 20641 root 5u REG 253,0 68 916745/tmp/crontab.YphQpH
Linux 普通用户su无法切换到root
在Linux系统中,普通用户切换至root权限时,若遇到无法使用su命令的问题,通常是因为文件权限设置不当。解决此问题,可采用以下步骤。
首先,尝试使用命令查看文件权限,以确定问题所在。例如,使用命令`ll/bin/su`检查文件权限。
在本例中,若文件权限显示为-rwx**,说明文件具有执行权限,但仍无法通过su命令切换至root权限。
接下来,尝试一系列方法解决此问题,但发现效果不明显。可能的方法包括修改文件权限,使用sudo命令或通过root权限修改文件属性等。然而,对于新手而言,这些方法可能难以实施或解释。
对于centos和ubuntu系统,可以采取特定的步骤进行系统重启,进入高级选项或恢复模式,以修改文件属性。具体步骤包括重启系统,进入恢复模式,并通过命令行操作实现权限的修改。
针对以上方法尝试后,可能自行探索其他解决方案。例如,通过远程登录SSH,同时使用vagrant和root账号。在root账号下修改文件属性,然后切换回vagrant账号进行验证。这样可以绕过直接修改文件权限的复杂步骤。
在root账号下操作后,检查vagrant账号下的文件权限是否已正确修改。进行文件移动操作,确认问题是否已解决。
此外,对于使用sudo命令切换权限的问题,需要确保`/usr/bin/sudo`文件的权限设置正确。通常,这需要设置`setuid`位,执行命令如`chmod 4755/usr/bin/sudo`或`chmod u+s/usr/bin/sudo`,并验证sudo命令的可用性。
最后,虽然问题已解决,但在root权限下使用sudo命令切换至普通用户的问题仍存在。这可能涉及权限设置或系统配置方面的问题,需要进一步研究和解决。
在CentOS系统中安装quota来管理磁盘配额
在网络管理的工作中,由于硬盘的资源是有限的,常常需要为多用户的服务器设定用户的linux磁盘配额。这个功能对公用的多用户服务器(免费的或者收费的)来说,更是非常必要的。Quota就是在RedHatlinux下实现linux磁盘配额的工具。 quota只支持单独的挂载文件系统不是某一个目录。
1.挂载目录加入 quota
查看/home目录挂载情况
复制代码代码如下:
[root@bogon~]# df-h/home
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 2.0G 35M 1.8G 2%/home
复制代码代码如下:
[root@bogon~]# mount| grep home
/dev/sda3 on/home type ext4(rw)
使用者与群组的 quota文件系统支持参数:usrquota, grpquota
复制代码代码如下:
[root@bogon~]# mount-o remount,usrquota,grpquota/home
查看确定加了 usrquota,grpquota
复制代码代码如下:
[root@bogon~]# mount| grep home
/dev/sda3 on/home type ext4(rw,usrquota,grpquota)
编辑 fstab文件让系统启动时挂载quota
复制代码代码如下:
[root@bogon~]# vi/etc/fstab重启后生效
LABEL=/home/home ext4 defaults,usrquota,grpquota 1 2
重新挂载
复制代码代码如下:
[root@bogon~]# umount/home
[root@bogon~]# mount-a
[root@bogon~]# mount| grep home
2. quota安装生成usrquota, grpquota两个目录
对整个系统含有 usrquota, grpquota参数的文件系统进行 quotacheck扫瞄
复制代码代码如下:
[root@bogon~]# quotacheck-avug
-bash: command not found复制代码代码如下:[root@bogon~]# yum install quota安装quota
复制代码代码如下:
[root@bogon~]# quotacheck-avug
自动创建 usrquota, grpquota两个目录
复制代码代码如下:
[root@bogon~]# ll-d/home/
-rw------- 1 root root 8192 Mar 6 11:58/home/aquota.group
-rw------- 1 root root 9216 Mar 6 11:58/home/aquota.user
这时,由于某种需要,或者在某种情况,“不得不”运行这个命令:
复制代码代码如下:
[root@bogon~]# quotacheck-avug-mf
参数-m[M]意思是:强迫在“读、写”模式下检查硬盘的 quota(有一定的“正在写”的数据丢失可能,应确保没有进程在写这个分区。建议在单用户模式下进行。)。
复制代码代码如下:
[root@bogon~]# quotaon-auvg启动 quota
/dev/sda3 [/home]: group quotas turned on
/dev/sda3 [/home]: user quotas turned on
3. quota限制大小设置
myquota1账号加入quota限制使用在这里固定每个用户使用的磁盘大小为500M
复制代码代码如下:
[root@bogon~]# useradd myquota1
[root@bogon~]# edquota-u myquota1
Filesystem blocks soft hard inodes soft hard
/dev/sda3 80 500000 600000 10 0 0
复制myquota1用户的信息给 myquota2
复制代码代码如下:
[root@bogon~]# edquota-p myquota1-u myquota2
复制代码代码如下:
[root@bogon~]# edquota-g myquotagrp编辑myquotagrp组的总共使用大小
Filesystem blocks soft hard inodes soft hard
/dev/sda3 160 10000000 12000000 20 0 0
复制代码代码如下:
[root@bogon~]# edquota-t修改宽限时间当使用者文件超过大小时
复制代码代码如下:
[root@bogon~]# quota-uvs myquota1 myquota2查询使用情况
Filesystem blocks quota limit grace files quota limit grace
/dev/sda3 80 495M 595M 10 0 0
Disk quotas for user myquota2(uid 501):
Filesystem blocks quota limit grace files quota limit grace
/dev/sda3 80 495M 595M 10 0 0
复制代码代码如下:
[root@bogon~]# quota-gvs myquotagrp查询myquotagrp组使用情况
复制代码代码如下:
edquota-g myquotagrp
Filesystem blocks soft hard inodes soft hard
/dev/sda3 160 1000M 1200M 20 0 0
复制代码代码如下:
[root@bogon~]# repquota-auvs查询所有用户使用情况
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
root-- 20 0 0 2 0 0
myquota1-- 32 495M 595M 10 0 0
myquota2-- 32 495M 595M 10 0 0
myquotagrp-- 64 1000M 1200M 20 0 0
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 4
Used average: 4.000000
4. quota测试
利用 myquota1的身份,建置一个 550MB的大文件,并观察 quota结果!
复制代码代码如下:
[root@bogon~]# dd if=/dev/zero of=bigfile bs=1M count=550
[root@bogon~]# repquota-auv
Block limits File limits
User used soft hard grace used soft hard grace
----------------------------------------------------------------------
myquota1+- 556840 500000 600000 13days 11 0 0
你可以发现 myquota1的 grace出现!
再创建另外一个大文件,让总容量超过 600M!
复制代码代码如下:
[root@bogon~]# dd if=/dev/zero of=bigfile2 bs=1M count=600
du-sk
600000.文件大小已经查过了设置的大小操作失败
复制代码代码如下:
[root@bogon~]# warnquota查看是否有警告信息
您如果要取消磁盘空间的限制,可用以下命令,请看:
复制代码代码如下:
[root@bogon~]# quotaoff/home(取消磁盘空间限制。)
复制代码代码如下:
[root@bogon~]# quotaon/home(现在启动磁盘空间限制。)
PS:quota命令的基础用法整理
语法
quota [-u [ User ] ] [-g [ Group ] ] [-v|-q ]
描述
root用户可以使用带有可选 User参数的-u标志查看其它用户的限制。没有 root用户权限的用户可以通过使用带有可选 Group参数的-g标志来查看它们所属的组的限制。
注:
如果某个特定用户在对他有限额的文件系统上没有文件,该命令为那个用户显示 quota: none。当用户在文件系统中有文件时,显示用户的实际限额。
标志
-g显示用户组的限额。
-u显示用户限额。该标志是缺省选项。
-v显示没有已分配存储器的文件系统上的限额。
-q打印扼要消息,只包含关于使用超过限额的文件系统的信息。
注:
-q标志优先于-v标志。
安全性
访问控制:该命令由 root用户和 bin组拥有。
特权控制:该程序是 setuid为了允许非特权用户查看个人限额。
示例
(1).要显示用户 keith的限额,请输入:
复制代码代码如下:quota
系统显示下列信息:
User quotas for user keith(uid 502):
Filesystem blocks quota limit grace Files quota limit grace
/u 20 55 60 20 60 65
(2).要作为 root用户显示用户 davec的限额,请输入:
复制代码代码如下:quota-u davec
系统显示下列信息:
User quotas for user davec(uid 2702):
Filesystem blocks quota limit grace files quota limit grace
/u 48 50 60 7 60 60
文件
复制代码代码如下:quota.user指定用户限额。
复制代码代码如下:quota.group指定组限额。
复制代码代码如下:/etc/filesystems包含文件系统名称和位置。