how to change other users socket properties?

I am using nodejs + socket.io and have chat. Every user, when enters chat, get some data to his socket. For example:

module.exports = function(io) {
    var chat = io.of('/chat').on('connection', function (socket) {

        socket.on('start-chat', function(data) {
            socket.user_name = data.name;
        }

    });
}

Question: How one user can change socket property of other? For example, i need to change others user socket.user_name, having his socket.id

You can get access to the connected clients and filter them for what ever criteria you need. IIRC you can also access them directly by ID if you happen to have the id with io.sockets.sockets[socket_id]

Another approach is to keep your own record of session. This means you can index using a key that you'd determine your self on each connection. An example:

var clientConnections = {};
sio.on('connection', function (socket) {
    var key = <something unique, maybe based on socket.handshake data>;
    clientConnections[key] = socket;
}

You can then just access the socket reference else where via the clientConnections hash: clientConnections[<some key].

Once you have that reference you should be able to manipulate the socket as if it was the subject of your event callback.