Bagaimana menjalankan proses dengan grup tertentu?

22

Saya harus memulai aplikasi dengan hak pengguna saya sendiri, tetapi grupnya harus berbeda. Jadi, alih-alih:

$ ps -eo "user,group,args" | grep qbittorrent
morfik   morfik      /usr/bin/qbittorrent

itu harus misalnya:

$ ps -eo "user,group,args" | grep qbittorrent
morfik   p2p      /usr/bin/qbittorrent

Itu juga harus dilakukan tanpa bertanya tentang kata sandi. Apakah ada cara untuk mencapai ini?

Mikhail Morfikov
sumber
Maaf tidak dapat berkomentar, maka letakkan tindak lanjut ini di area jawaban. <br> sg sepertinya tidak berfungsi dalam kasus kami. Seorang pengguna biasanya perlu menggunakan perintah "newgrp" untuk mengubah ke grup "jazz" untuk dapat turun ke direktori "dirA" tertentu dari commandline. Tapi dia tidak bisa menemukan cara untuk membuat "nautilus --browser" turun ke "dirA" itu. Dia mencoba "ng jazz -c 'nautilus --browser'" tetapi masih belum bisa turun ke "dirA". Bagaimana bisa?
CLTECH

Jawaban:

31

Gunakan sg.

Misalnya, perintah berikut akan memanggil sleepuntuk grupgroup-name

sg group-name -c 'sleep 100'

Dari halaman manual:

NAME
   sg - execute command as different group ID

SYNOPSIS
   sg [-] [group [-c ] command]

DESCRIPTION
   The sg command works similar to newgrp but accepts a command. The
   command will be executed with the /bin/sh shell...
mkc
sumber
Cukup sederhana, dan berfungsi. :)
Mikhail Morfikov
2

sg minta kata sandi grup

sudo memiliki opsi -g yang melakukan hal yang sama dengan kata sandi pengguna.

memerlukan grup penyebut dalam sudoers

Saya mengubah / etc / sudoers oleh

%wheel All=(ALL) ALL

untuk

%wheel All=(ALL:ALL) ALL

Terkadang lebih nyaman

Cara aman untuk mengedit sudoers adalah:

sudo sudoedit /etc/sudoers
mmv-ru
sumber
0

Untuk menghindari prompt kata sandi dengan sg tambahkan diri Anda sebagai anggota grup

    sudo gpasswd -M morfik p2p

Anda juga mungkin perlu menghapus kata sandi dan membatasi akses hanya ke anggota

    sudo gpasswd -r p2p
    sudo gpasswd -R p2p

man gpasswd akan memberi Anda lebih detail

FeignInt
sumber