小编Jos*_*din的帖子

我们如何允许非 root 用户控制 systemd 服务?

使用sysvinit,这样的sudoers条目就足够了:

%webteam cms051=/sbin/service httpd *
Run Code Online (Sandbox Code Playgroud)

这将允许以下命令:

  • sudo service httpd status
  • sudo service httpd restart

现在,使用systemd,服务名称是最后一个参数。即,服务重启将通过以下方式完成:

systemctl restart httpd.service
Run Code Online (Sandbox Code Playgroud)

自然,我认为定义命令systemctl * httpd.service会起作用,但这会允许类似systemctl restart puppet.service httpd.service的效果不是预期的。

考虑到这一点,那么允许非 root 用户控制systemd服务的最佳方式是什么?这不需要是sudoers;也许文件权限更改可能就足够了?

sudo systemd not-root-user services

91
推荐指数
5
解决办法
13万
查看次数

从 grub 救援命令提示符启动窗口

之前我安装了 Ubuntu 10.04 和 Windows 7。

现在我登录到 Windows,打开分区编辑器并删除包含 Ubuntu 的卷——我认为它会删除 Ubuntu,它可能会帮助我安装另一个操作系统——然后我重新启动了系统。

GRUB 救援提示在那里。

我想登录到 Windows。我怎样才能做到这一点?

在 GRUB 救援中,我尝试了以下操作:

ls
(hd0) (hd0,3) (hd0,2) (hd0,1) (hd1) (hda1,1)
Run Code Online (Sandbox Code Playgroud)

尝试了 的所有组合ls (hdax)/,结果抛出:

error: Unknown Filesystem.
Run Code Online (Sandbox Code Playgroud)

我试过这个:

rootnoverify (hd0,0)
chainloader +1
makeactive
boot
Run Code Online (Sandbox Code Playgroud)

它抛出:

Unknown command.
Run Code Online (Sandbox Code Playgroud)

编辑:

我从 USB 安装了 Ubuntu。现在当我重新启动系统时,我得到了 GRUB,显示旧的 Windows 和新安装的 Ubuntu。我愉快地登录到Windows。然后我使用标准程序删除Ubuntu,以免grub救援。

linux grub windows rescue

39
推荐指数
2
解决办法
30万
查看次数

如何使用 nginx 通过 HTTP 发布 git repo?

我在 domain.fr 上有一台 CentOS 5 服务器。我正在尝试设置一个子域,以便我可以将它与 git 一起使用: git.domain.fr

我的存储库在 /home/git (例如 /home/git/repos.git)

我已经安装了git-http-backendNginx。我已经设置了这样的存储库:

cd /home/git/repos.git && git --bare init
Run Code Online (Sandbox Code Playgroud)

我已将我的git.conf(包含在 中nginx.conf)设置为如下。

但是,在我的客户端 shell 上,我收到致命错误“找不到存储库”: git clone http://git.domain.fr/repos.git

有谁知道我应该做什么?看起来很简单,我很沮丧,因为我确定这没什么。

server {

    listen          80;
    server_name     git.domain.fr;
    root            /home/git;

    location ~ /(/.*) {

        include /etc/nginx/fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME /usr/bin/git-http-backend;
        fastcgi_param   GIT_HTTP_EXPORT_ALL     true;
        fastcgi_param   GIT_PROJECT_ROOT        /home/git;
        fastcgi_param   PATH_INFO               $1;
        fastcgi_pass unix:/var/run/fcgiwrap.socket;
    }
}
Run Code Online (Sandbox Code Playgroud)

centos git nginx

8
推荐指数
1
解决办法
7731
查看次数

组成员无法使用 reiserfs 和扩展 ACL 写入组可写文件

用户virust共享组rust并希望以共享方式使用某些文件。

rust$ ls -l myfile 
-rw-rw-r-- 1 vi rust 0 May 30 03:48 myfile
rust$ stat myfile  | grep Gid
Access: (0664/-rw-rw-r--)  Uid: ( 1000/      vi)   Gid: ( 1057/    rust)
rust$ id
uid=1048(rust) gid=1057(rust) groups=1057(rust),...

rust$ cat myfile
rust$ touch myfile 
touch: cannot touch ‘myfile’: Permission denied
rust $ dd of=myfile 
dd: failed to open ‘myfile’: Permission denied

vi$ id
uid=1000(vi) gid=1000(vi) groups=1000(vi),{many unrelated groups skipped},1057(rust),{many unrelated groups skipped}
vi$ touch myfile
vi$ 
Run Code Online (Sandbox Code Playgroud)

尽管有 …

linux acl permissions files reiserfs

7
推荐指数
1
解决办法
243
查看次数

如何使非特权脚本删除它对文件的特权

是否可以从以非特权用户身份运行的 bash 将文件标记为免疫,以便它不能从以该用户身份运行的任何进程以任何方式进行更改?如果其他用户或 root 可以更改它,则可以。

我的用户案例是在开始另一个进程之前准备一个配置文件。我想阻止该进程通过错误或故意利用来对文件进行任何修改。

使用chmod a-w path或类似的方法并不好,因为它可以被简单地撤消。我无法更改文件的所有权,因为该进程不是 root。我也不能使用,chattr +i path因为进程没有 CAP_LINUX_IMMUTABLE。

是否唯一的选择是在其可执行文件上设置 setuid/sudo 程序或具有 CAP_LINUX_IMMUTABLE 的程序来执行此类更改?

bash permissions

6
推荐指数
1
解决办法
253
查看次数

从 mdadm RAID 0 阵列中删除 1 个磁盘

服务器有一个 7 磁盘RAID 0阵列,并且sdf开始死亡。

有没有办法sdf在保持阵列完整的同时删除?

# df -h
Filesystem  Size  Used Avail Use% Mounted on
/dev/md1     14T  6.6T  7.0T  49% /var
[...]

# cat /proc/mdstat
Personalities : [raid0]
md1 : active raid0 sda4[0] sdf1[5] sdd1[3] sdb1[1] sde1[4] sdg1[6] sdc1[2]
      14482788352 blocks 512k chunks
Run Code Online (Sandbox Code Playgroud)

希望将停机时间保持在最低限度。


澄清:

我知道没有冗余,并且我已经备份了重要数据。

但是是否有可能将“条纹”sdf移到其他驱动器上?只是为了让它进入稳定状态而不必擦拭所有东西。到目前为止,我可以强行修复的只是几个坏道。

如果可能的话,之后我会计划对 3 个健康的驱动器做同样的事情,并镜像它们。最终我需要将其转换为RAID1.

我不相信可以在此 Hetzner 服务器上添加另一个硬盘。此外,他们无法镜像有缺陷的驱动器并更换它:

“请注意,我们只能将您损坏的硬盘更换为空硬盘。我们不进行任何数据交换或备份。”
——赫兹纳

gentoo mdadm

3
推荐指数
1
解决办法
2864
查看次数

标签 统计

linux ×2

permissions ×2

acl ×1

bash ×1

centos ×1

files ×1

gentoo ×1

git ×1

grub ×1

mdadm ×1

nginx ×1

not-root-user ×1

reiserfs ×1

rescue ×1

services ×1

sudo ×1

systemd ×1

windows ×1