Saya mengajukan pertanyaan serupa, karena saya mengalami masalah dengan variabel lingkungan XDG ( $XDG_RUNTIME_DIRkhususnya) yang membuat saya gila. -> unix.stackexchange.com/questions/354826/…
Secara umum, Anda dapat menggunakan sudountuk meluncurkan shell baru sebagai pengguna yang Anda inginkan; yang -ubendera memungkinkan Anda menentukan nama pengguna yang Anda inginkan:
$ whoami
user1
$ sudo -u user2 zsh
$ whoami
user2
Ada lebih banyak cara berputar jika Anda tidak memiliki akses sudo, seperti ssh username @ localhost, tetapi sudomungkin paling sederhana, asalkan itu diinstal dan Anda memiliki izin untuk menggunakannya.
Juga, su - [user]semoga bermanfaat - dasbor tambahan memberi Anda shell login.
ephemient
Saya mendapatkan kesalahan ini "-su: / dev / stderr: Izin ditolak" setelah menjalankan perintah ini echo >>/dev/stderrpada login dengan su --login ..., tip? Saya menemukan ini btw unix.stackexchange.com/questions/38538/…
Aquarius Power
Apakah ini memungkinkan setiap pengguna baru untuk memiliki nilai-nilai utama yang berbeda untuk variabel lingkungan? mis. git config untuk pekerjaan, open source, dll.
Kevin Suttle
Satu temuan, ketika saya mendaftar envitu melihat bahwa semuanya dalam urutan serta inspeksi visual bisa berjalan; Dan satu hal yang tidak benar: XAUTHORITY=/home/user1/.Xauthority'. Not sure _why_? So X-window doesn't work by default because the protection on berkas ~ / .Xauthority` adalah: -rw-------. Saya membuat salinan dan itu memungkinkan saya menjalankan gedit sebagai percobaan.
akan
1
jika Anda mendapatkan "Akun ini saat ini tidak tersedia": su -s / bin / bash - www-data
max4ever
46
Umumnya Anda gunakan sudountuk meluncurkan shell baru sebagai pengguna yang Anda inginkan; yang -ubendera memungkinkan Anda menentukan nama pengguna yang Anda inginkan:
Ada lebih banyak cara berputar jika Anda tidak memiliki akses sudo, seperti ssh username@localhost, tapi saya pikir sudomungkin paling sederhana jika diinstal dan Anda memiliki izin untuk menggunakannya
Bagaimana jika sistem saya tidak memiliki ssh server atau sudo? Bisakah Anda menyebutkan bagian itu pada jawabannya?
tshepang
ok, Pratt menjawab itu
tshepang
4
sudo -smemberi Anda shell like su, sudo -imensimulasikan login like su -. Dapat dikombinasikan dengan -u $user, tentu saja.
ephemient
jauh lebih efisien. bisa "masuk" sebagai pengguna yang biasanya tidak bisa masuk adalah aset yang bagus ..! benar-benar memungkinkan saya untuk menjalankan instance basis data tanpa mengacaukan izin atau selinux
Félix Gagnon-Grenier
20
$ 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 kembali whoami.
Jika Anda menjalankan Ubuntu, dan jika pengguna yang ingin Anda masuki tidak memiliki 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 sudo.
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 begitu 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, tapi 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 sesi pengguna 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.
Contoh dari ini adalah mongodbpengguna. Ketika menggunakan cluster MongoDB yang terbelokkan, semua proses yang diperlukan harus berjalan sebagaimana mongodbmestinya dan tidak perlu (atau sepenuhnya nyaman) untuk mengubah proses menggunakan skrip init untuk puluhan node.
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 tidak ingin meninggalkan shell saat ini dari UserA 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.
$XDG_RUNTIME_DIR
khususnya) yang membuat saya gila. -> unix.stackexchange.com/questions/354826/…Jawaban:
Bagaimana dengan menggunakan
su
perintah?Jika Anda ingin masuk sebagai root, tidak perlu menentukan nama pengguna:
Secara umum, Anda dapat menggunakan
sudo
untuk meluncurkan shell baru sebagai pengguna yang Anda inginkan; yang-u
bendera memungkinkan Anda menentukan nama pengguna yang Anda inginkan:Ada lebih banyak cara berputar jika Anda tidak memiliki akses sudo, seperti ssh username @ localhost, tetapi
sudo
mungkin paling sederhana, asalkan itu diinstal dan Anda memiliki izin untuk menggunakannya.sumber
su - [user]
semoga bermanfaat - dasbor tambahan memberi Anda shell login.echo >>/dev/stderr
pada login dengansu --login ...
, tip? Saya menemukan ini btw unix.stackexchange.com/questions/38538/…env
itu melihat bahwa semuanya dalam urutan serta inspeksi visual bisa berjalan; Dan satu hal yang tidak benar:XAUTHORITY=/home/user1/.Xauthority'. Not sure _why_? So X-window doesn't work by default because the protection on
berkas ~ / .Xauthority` adalah:-rw-------
. Saya membuat salinan dan itu memungkinkan saya menjalankan gedit sebagai percobaan.Umumnya Anda gunakan
sudo
untuk meluncurkan shell baru sebagai pengguna yang Anda inginkan; yang-u
bendera memungkinkan Anda menentukan nama pengguna yang Anda inginkan:Ada lebih banyak cara berputar jika Anda tidak memiliki akses sudo, seperti
ssh username@localhost
, tapi saya pikirsudo
mungkin paling sederhana jika diinstal dan Anda memiliki izin untuk menggunakannyasumber
sudo -s
memberi Anda shell likesu
,sudo -i
mensimulasikan login likesu -
. Dapat dikombinasikan dengan-u $user
, tentu saja.Perintah ini mencetak pengguna saat ini. Untuk mengubah pengguna, kita harus menggunakan perintah ini (diikuti oleh kata sandi pengguna):
Setelah memasukkan kata sandi yang benar, Anda akan masuk sebagai pengguna yang ditentukan (yang dapat Anda periksa dengan menjalankan kembali
whoami
.sumber
Jika Anda menjalankan Ubuntu, dan jika pengguna yang ingin Anda masuki tidak memiliki kata sandi:
Masukkan kata sandi Anda sendiri dan Anda harus mengaturnya. Tentu saja, ini mengharuskan pengguna Anda memiliki hak untuk mendapatkan hak akses root
sudo
.sumber
Untuk mengalihkan sesi terminal ke pengguna lain, di mana pengguna itu tidak bisa keluar kembali ke pengguna asli, gunakan exec:
Ini secara teknis akan login pengguna baru dalam proses istilah baru, dan tutup yang sekarang. Dengan begitu 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, tapi 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 sesi pengguna 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.
sumber
sudo -iu <your_username>
bagi saya lakukan triknyasumber
Namun rute lain adalah meluncurkan shell baru sebagai pengguna (non-root) yang berbeda untuk menjalankan perintah sebagai pengguna itu.
Contoh dari ini adalah
mongodb
pengguna. Ketika menggunakan cluster MongoDB yang terbelokkan, semua proses yang diperlukan harus berjalan sebagaimanamongodb
mestinya dan tidak perlu (atau sepenuhnya nyaman) untuk mengubah proses menggunakan skrip init untuk puluhan node.sumber
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 tidak ingin meninggalkan shell saat ini dari UserA tetapi menjalankan perintah sebagai UserB dan masih tetap masuk sebagai UserA, Anda harus melakukan ini:
Ini mengasumsikan Anda tahu kata sandi untuk UserB. Namun, jika Anda tidak tahu kata sandi UserB, Anda harus tahu kata sandi root. Kemudian:
Jika Anda lebih suka masuk sementara sebagai UserB untuk menjalankan banyak perintah, maka lakukan saja:
Ini akan memberi Anda shell baru untuk UserB (periksa dengan mengetik id). Setelah selesai, Anda dapat melakukan ctrl-d dan kembali ke login Anda.
sumber
Jika Anda perlu menjalankan hanya satu perintah, Anda dapat menggunakan sudo:
sudo -u username command
sumber
Kemudian akan muncul kata sandi sudo (kata sandi pengguna yang saat ini masuk).
Juga: pastikan bahwa pengguna saat ini ada di file sudoers!
sumber