it-swarm-id.com

Bagaimana cara beralih antar pengguna di satu terminal?

Saya ingin masuk sebagai pengguna yang berbeda tanpa keluar dari yang sekarang (di terminal yang sama). Bagaimana aku melakukan itu?

535
tshepang

Bagaimana dengan menggunakan perintah su?

$ whoami
user1
$ su - user2
Password:
$ whoami
user2
$ exit
logout

Jika Anda ingin masuk sebagai root, tidak perlu menentukan nama pengguna:

$ whoami
user1
$ su -
Password:
$ whoami
root
$ exit
logout

Secara umum, Anda dapat menggunakan Sudo untuk meluncurkan Shell baru sebagai pengguna yang Anda inginkan; -u flag memungkinkan Anda menentukan nama pengguna yang Anda inginkan:

$ whoami
user1
$ Sudo -u user2 zsh
$ whoami
user2

Ada lebih banyak cara memutar jika Anda tidak memiliki akses Sudo, seperti ssh username @ localhost, tetapi Sudo mungkin paling sederhana, asalkan itu diinstal dan Anda memiliki izin untuk menggunakannya.

630
Pratt

Umumnya Anda menggunakan Sudo untuk meluncurkan Shell baru sebagai pengguna yang Anda inginkan; -u flag memungkinkan Anda menentukan nama pengguna yang Anda inginkan:

[[email protected] ~] % whoami
mrozekma
[[email protected] ~] % Sudo -u nobody zsh
[[email protected] ~] % whoami
nobody

Ada banyak cara lain jika Anda tidak memiliki akses Sudo, seperti ssh [email protected], tapi saya rasa Sudo mungkin paling sederhana jika diinstal dan Anda memiliki izin untuk menggunakannya

51
Michael Mrozek
$ whoami 

Perintah ini mencetak pengguna saat ini. Untuk mengubah pengguna, kita harus menggunakan perintah ini (diikuti oleh kata sandi pengguna):

$ su secondUser
Password:

Setelah memasukkan kata sandi yang benar, Anda akan masuk sebagai pengguna yang ditentukan (yang dapat Anda periksa dengan menjalankan ulang whoami.

25
Ashish Saini

Jika Anda menjalankan Ubuntu, dan jika pengguna yang ingin Anda masuki tidak memiliki set kata sandi:

Sudo su - username

Masukkan kata sandi Anda sendiri dan Anda harus mengaturnya. Tentu saja, ini mengharuskan pengguna Anda memiliki hak untuk mendapatkan hak akses root dengan Sudo.

17
Sundae

Untuk mengalihkan sesi terminal ke pengguna lain, di mana pengguna itu tidak bisa keluar kembali ke pengguna asli, gunakan exec:

$ | # exec su - [nama pengguna]

Ini secara teknis akan login pengguna baru dalam proses istilah baru, dan tutup yang sekarang. Dengan cara itu ketika pengguna mencoba keluar atau Ctrl-D, terminal akan menutup seolah-olah pengguna yang membuat itu, yaitu, pengguna tidak dapat keluar kembali ke istilah pengguna asli. Agak tidak ada gunanya, mengingat mereka masih bisa memulai sesi terminal baru dan secara otomatis berada dalam login istilah pengguna asli, tetapi itu dia.

EDIT: Untuk apa nilainya, Anda dapat menggunakan perintah linux vlock di ~/.bashrc Anda untuk mengunci sesi terminal secara default, membutuhkan kata sandi dari pengguna sesi sesi untuk membuka kunci. Ini agaknya akan mencegah restart istilah tersebut di bawah konteks pengguna asli, mengingat istilah tersebut tidak dipakai menggunakan non-default ~/.bashrc dari pengguna, seperti yang dikonfigurasi.

9
SYANiDE

Sudo -iu <your_username> bagi saya lakukan triknya

3
andilabs

Mari kita selesaikan ini: Anda masuk sebagai UserA dan ingin "masuk" sebagai UserB untuk menjalankan beberapa perintah, tetapi ingin kembali ke UserA setelah selesai. Demi kesederhanaan, saya berasumsi bahwa Anda ingin menjalankan ls -l/tmp sebagai UserB. Jika Anda melakukannya tidak ingin meninggalkan Shell UserA saat ini tetapi menjalankan perintah sebagai UserB dan masih tetap masuk sebagai UserA, Anda harus melakukan ini:

su - UserB -c "ls -l /tmp"   <-- Just an example

Ini mengasumsikan Anda tahu kata sandi untuk UserB. Namun, jika Anda tidak tahu kata sandi UserB, Anda harus tahu kata sandi root. Kemudian:

Sudo su - UserB -c "ls -l /tmp"   <-- UserB's pw not needed here

Jika Anda lebih suka masuk sementara sebagai UserB untuk menjalankan banyak perintah, maka lakukan saja:

Sudo su - UserB

Ini akan memberi Anda Shell baru untuk UserB (periksa dengan mengetik id). Setelah selesai, Anda dapat melakukan ctrl-d dan kembali ke login Anda.

2
Hopping Bunny

Namun rute lain adalah meluncurkan Shell baru sebagai pengguna (non-root) yang berbeda untuk menjalankan perintah sebagai pengguna itu.

[email protected]:~$ Sudo -u mongodb bash          #<-- or zsh, etc... 
[email protected]:~$ mongod --configsvr --dbpath /data/configdb --fork

Contoh dari ini adalah pengguna mongodb. Ketika menggunakan cluster MongoDB yang di-shard, semua proses yang diperlukan harus dijalankan sebagai mongodb dan itu tidak perlu (atau sepenuhnya nyaman) untuk mengubah proses menggunakan skrip init untuk puluhan node.

2
azatar

Jika Anda hanya perlu menjalankan satu perintah, Anda dapat menggunakan Sudo: Sudo -u username command

1
Maksim Luzik