Cách thay đổi tên người dùng thích hợp trong Ubuntu hoặc bất kỳ linux nào


26

Tôi đang sử dụng Ubuntu 12.04 và thực hiện một số tùy chỉnh. Tôi cũng sẽ làm cho nó một iso mới được tùy biến ubfox.

Điều tôi muốn hỏi là làm thế nào tôi có thể thay đổi tên người dùng của mình. Có rất nhiều cấu hình trong thư mục nhà hiện tại của tôi. Vì vậy, tôi không muốn gây rối với việc thay đổi tên người dùng.

Vì vậy, có bất kỳ thực hành hoặc quy trình làm việc tốt nhất để làm điều đó?


Thư mục chính của bạn thường được tạo bằng tên người dùng của bạn, nhưng bạn có thể thay đổi tên người dùng mà không thay đổi thư mục chính bằng cách thay đổi các thành phần đầu tiên của các mục trong / etc / passwd và / etc / bóng. Hãy chắc chắn rằng bạn có thể đăng nhập bằng root (không chỉ sudo từ đăng nhập người dùng của bạn) trong trường hợp bạn mắc lỗi.
Anthon

Nếu tôi muốn thay đổi tên của thư mục nhà thì sao? và ý nghĩa chính xác của sayin là gì?
CorpusCallosum

Câu trả lời:


28

Cách thực sự đúng? Giả sử bạn muốn thay đổi người dùng 'peter' thành 'paul'.

groupadd paul
usermod -d /home/paul -m -g paul -l paul peter

Điều này thay đổi tên, nhóm, thư mục chính và quyền sở hữu và nhóm của thư mục đó thành thư mục mới, cùng với tất cả các tệp. Bạn kết thúc với một người dùng không thể phân biệt được với việc ban đầu được tạo là 'paul'.

Một cách khác là chỉnh sửa các trường đầu tiên của mục peter trong tệp /etc/passwd/etc/shadow. Sau đó thay đổi mọi lần xuất hiện của 'peter' thành 'paul' trong /etc/group. Sau đó đổi tên thư mục nhà từ /home/peterđến /home/paul. Và sau đó chown -R paul /home/peterđể có được quyền sở hữu và nhóm của thư mục và tất cả các tệp và thư mục theo nó để có những cái mới.


3
Không cần chown nếu bạn đã chỉnh sửa / etc / {passwd, bóng tối, nhóm} - chủ sở hữu & nhóm cửa hàng inode số
Graham Nicholls

5

Tôi khuyên bạn không nên thay đổi tên người dùng. Điều này thường gây ra nhiều vấn đề khi tên người dùng được tham chiếu tĩnh trong các tệp cấu hình ở dạng thư mục chính của người dùng , /home/<username>. Chúng hầu như không bao giờ được viết theo cách chung chung, vì vậy tốt nhất là chỉ cần tạo tên người dùng mới và sau đó di chuyển các tệp và dữ liệu của người dùng sang tài khoản mới.


1
Cảm ơn đã bình luận. Tôi đã tạo người dùng mới và thay đổi thư mục userid / nhóm và home liên quan đến thư mục cũ. có vẻ như mọi thứ đang làm việc mát mẻ Bạn có nghĩ rằng phương pháp này cũng có thể gây ra vấn đề?
CorpusCallosum

3

Hãy thử lệnh usermod .

exec sudo su
usermod --login newname oldname

Chỉ cần làm 'sudo bất cứ điều gì bạn sẽ làm'. Làm sudo su sẽ không đăng nhập đúng các lệnh.
Keith Twombley


3

Sử dụng usermod để thay đổi tên người dùngthư mục chính . Thay đổi peter người dùng thành paul:

usermod -l paul peter
grep paul /etc/passwd /etc/shadow       # check

thay đổi thư mục nhà và di chuyển mọi thứ ở đó (được tạo ra nếu cần thiết)

usermod -m -d /home/paul paul
grep paul /etc/passwd               # check

Thay đổi tên nhóm , nhưng không sử dụng usermod vì trước tiên bạn phải tạo một nhóm khác (ví dụ: GID 1001) và mặc dù nó sẽ cập nhật GID cho mọi thứ trong thư mục $ HOME, bạn sẽ phải tìm kiếm và thay đổi tập tin và thư mục ở nơi khác với quyền sở hữu nhóm cũ. Thay vào đó, chỉ cần thay đổi tên nhóm bằng tay.

nano /etc/group

và thay đổi

peter:x:1000:

đến

paul:x:1000:

Bạn sẽ phải thay đổi tên tệp được sử dụng bởi cron, at và các dịch vụ khác sử dụng tên người dùng thay vì UID. Sử dụng

find /var -name "*peter*"

để tìm những tập tin này

Bạn cũng sẽ phải thay đổi các tệp cấu hình được sử dụng bởi một số dịch vụ như ứng dụng xử lý thư.

Cuối cùng, kịch bản sử dụng "/ home / peter /" sẽ cần được chỉnh sửa. Thay đổi lần xuất hiện của "/ home / peter /" thành "$ HOME".

Nó không phải là rất nhiều công việc để thay đổi danh tính người dùng, bạn chỉ cần kỹ lưỡng.


Được nâng cấp bởi vì đây là cách tiếp cận tương tự mà tôi sử dụng (vì những lý do tương tự liên quan đến việc bảo tồn GID). BTW, bạn thực sự có thể kết hợp hai usermodlệnh thành một và bạn cũng nên nhớ chỉnh sửa /etc/gshadowcùng với /etc/group; Hai trong số chúng có thể được thay đổi bằng GNU sed: sudo sed -i 's/oldname/newname/g' /etc/{group,gshadow}- hoặc tốt hơn vẫn là với sudo groupmod -n newname oldname. Hoàn thành tốt việc làm nổi bật một số vấn đề khác như phải thay đổi tên của crontab của người dùng (nếu họ có).
Anthony G - công lý cho Monica

Phụ lục nhanh về điều này ... bạn không thể đăng nhập trong khi thực hiện việc này. Tạo người dùng tạm thời mới là một phần của nhóm sudoers, đăng nhập với đó, thực hiện các thay đổi, đăng xuất từ ​​accp temp mới, đăng nhập vào tên đã đổi tên và xóa tài khoản tạm thời.
Janus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.