Quên sudo su
Không có lợi ích gì khi sử dụng sudo su, đó là thói quen lỗi thời từ khi mọi người đã quen sử dụng su. Mọi người bắt đầu giải quyết sudotrước khi các bản phân phối Linux ngừng đặt mật khẩu gốc và thực hiện sudocách duy nhất để truy cập vào tài khoản root. Thay vì thay đổi thói quen của họ, họ chỉ sử dụng sudo su. (Tôi là một trong số họ cho đến gần đây khi sử dụng các hộp có cấu hình sudoersbuộc tôi phải thay đổi thói quen của mình).
Sử dụng sudo -u
Đối với một vỏ đăng nhập, sudo -u postgres -itốt hơn là sudo su - postgres. Nó không yêu cầu người dùng có quyền truy cập root /etc/sudoers, họ chỉ cần quyền trở thành người dùng postgres. Nó cũng cho phép bạn thực thi các điều khiển truy cập tốt hơn.
Để thực hiện lệnh
sudo -u postgres psql -c "SELECT 1"
là vượt trội so với lựa chọn thay thế:
sudo su - postgres -c "psql -c \"SELECT 1\""
trong đó bạn không phải thoát hai dấu ngoặc kép và các siêu ký tự shell khác cũng như các lợi thế bảo mật khác của việc không cần root. Bạn có thể sẽ vô tình viết lên:
sudo su - postgres -c psql -c "SELECT 1"
đôi khi, nó sẽ không hoạt động đúng.
Cuối cùng, cách dễ dàng hơn để đặt các biến môi trường thông qua sudo, ví dụ:
sudo PATH=/usr/pgsql-9.3/bin:$PATH -u postgres /usr/pgsql-9.3/bin/initdb -D /var/lib/pgsql/testcluster
hơn thông qua su. (Ở đây, PATHcài đặt là bắt buộc để initdbcó thể tìm thấy postgrestệp thực thi chính xác ).
Vì thế. Quên sulệnh tồn tại. Bạn không cần nó nữa. Để bỏ thói quen, hãy đặt bí danh cho thứ gì đó sẽ in lỗi. (Tuy nhiên, một số tập lệnh thiết lập gói và init vẫn sử dụng suđể bạn không thể xóa nó).
Xem thêm: