centos setuid?centos8官网下载教程

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

在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包含文件系统名称和位置。

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命令切换至普通用户的问题仍存在。这可能涉及权限设置或系统配置方面的问题,需要进一步研究和解决。

阅读剩余
THE END